Merge pull request #13230 from edx/rc/2016-08-16
Release Candidate rc/2016-08-16
This commit is contained in:
@@ -55,3 +55,6 @@ common/lib/xmodule/xmodule/js/src/sequence/display.js
|
||||
common/lib/xmodule/xmodule/js/src/sequence/edit.js
|
||||
common/lib/xmodule/xmodule/js/src/tabs/tabs-aggregator.js
|
||||
common/lib/xmodule/xmodule/js/src/vertical/edit.js
|
||||
|
||||
# This file is responsible for almost half of the repo's total issues.
|
||||
common/lib/xmodule/xmodule/js/src/capa/schematic.js
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -98,6 +98,7 @@ cms/static/sass/*.css
|
||||
cms/static/sass/*.css.map
|
||||
cms/static/themed_sass/
|
||||
themes/**/css/*.css
|
||||
themes/**/css/discussion/*.css
|
||||
|
||||
### Logging artifacts
|
||||
log/
|
||||
|
||||
@@ -2,46 +2,6 @@
|
||||
Feature: CMS.Course updates
|
||||
As a course author, I want to be able to provide updates to my students
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/20/2016
|
||||
# Internet explorer can't select all so the update appears weirdly
|
||||
# @skip_internetexplorer
|
||||
# Scenario: Users can add updates
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# When I add a new update with the text "Hello"
|
||||
# Then I should see the update "Hello"
|
||||
# And I see a "saving" notification
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/20/2016
|
||||
# # Internet explorer can't select all so the update appears weirdly
|
||||
# @skip_internetexplorer
|
||||
# Scenario: Users can edit updates
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# When I add a new update with the text "Hello"
|
||||
# And I modify the text to "Goodbye"
|
||||
# Then I should see the update "Goodbye"
|
||||
# And I see a "saving" notification
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/20/2016
|
||||
# Scenario: Users can delete updates
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# And I add a new update with the text "Hello"
|
||||
# And I delete the update
|
||||
# And I confirm the prompt
|
||||
# Then I should not see the update "Hello"
|
||||
# And I see a "deleting" notification
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/20/2016
|
||||
# Scenario: Users can edit update dates
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# And I add a new update with the text "Hello"
|
||||
# When I edit the date to "06/01/13"
|
||||
# Then I should see the date "June 1, 2013"
|
||||
# And I see a "saving" notification
|
||||
|
||||
# Internet explorer can't select all so the update appears weirdly
|
||||
@skip_internetexplorer
|
||||
Scenario: Users can change handouts
|
||||
@@ -51,26 +11,6 @@ Feature: CMS.Course updates
|
||||
Then I see the handout "Test"
|
||||
And I see a "saving" notification
|
||||
|
||||
Scenario: Text outside of tags is preserved
|
||||
Given I have opened a new course in Studio
|
||||
And I go to the course updates page
|
||||
When I add a new update with the text "before <strong>middle</strong> after"
|
||||
Then I should see the update "before <strong>middle</strong> after"
|
||||
And when I reload the page
|
||||
Then I should see the update "before <strong>middle</strong> after"
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/22/2016
|
||||
# Scenario: Static links are rewritten when previewing a course update
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# When I add a new update with the text "<img src='/static/my_img.jpg'/>"
|
||||
# # Can only do partial text matches because of the quotes with in quotes (and regexp step matching).
|
||||
# Then I should see the asset update to "my_img.jpg"
|
||||
# And I change the update from "/static/my_img.jpg" to "<img src='/static/modified.jpg'/>"
|
||||
# Then I should see the asset update to "modified.jpg"
|
||||
# And when I reload the page
|
||||
# Then I should see the asset update to "modified.jpg"
|
||||
|
||||
Scenario: Static links are rewritten when previewing handouts
|
||||
Given I have opened a new course in Studio
|
||||
And I go to the course updates page
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# pylint: disable=missing-docstring
|
||||
|
||||
from cms.djangoapps.contentstore.features.common import type_in_codemirror, get_codemirror_value
|
||||
from lettuce import world, step
|
||||
from selenium.webdriver.common.keys import Keys
|
||||
from common import type_in_codemirror, get_codemirror_value
|
||||
from nose.tools import assert_in
|
||||
|
||||
|
||||
@@ -15,77 +14,11 @@ def go_to_updates(_step):
|
||||
world.wait_for_visible('#course-handouts-view')
|
||||
|
||||
|
||||
@step(u'I add a new update with the text "([^"]*)"$')
|
||||
def add_update(_step, text):
|
||||
update_css = '.new-update-button'
|
||||
world.css_click(update_css)
|
||||
world.wait_for_visible('.CodeMirror')
|
||||
change_text(text)
|
||||
|
||||
|
||||
@step(u'I should see the update "([^"]*)"$')
|
||||
def check_update(_step, text):
|
||||
update_css = 'div.update-contents'
|
||||
update_html = world.css_find(update_css).html
|
||||
assert_in(text, update_html)
|
||||
|
||||
|
||||
@step(u'I should see the asset update to "([^"]*)"$')
|
||||
def check_asset_update(_step, asset_file):
|
||||
update_css = 'div.update-contents'
|
||||
update_html = world.css_find(update_css).html
|
||||
asset_key = world.scenario_dict['COURSE'].id.make_asset_key(asset_type='asset', path=asset_file)
|
||||
assert_in(unicode(asset_key), update_html)
|
||||
|
||||
|
||||
@step(u'I should not see the update "([^"]*)"$')
|
||||
def check_no_update(_step, text):
|
||||
update_css = 'div.update-contents'
|
||||
assert world.is_css_not_present(update_css)
|
||||
|
||||
|
||||
@step(u'I modify the text to "([^"]*)"$')
|
||||
def modify_update(_step, text):
|
||||
button_css = 'div.post-preview .edit-button'
|
||||
world.css_click(button_css)
|
||||
change_text(text)
|
||||
|
||||
|
||||
@step(u'I change the update from "([^"]*)" to "([^"]*)"$')
|
||||
def change_existing_update(_step, before, after):
|
||||
verify_text_in_editor_and_update('div.post-preview .edit-button', before, after)
|
||||
|
||||
|
||||
@step(u'I change the handout from "([^"]*)" to "([^"]*)"$')
|
||||
def change_existing_handout(_step, before, after):
|
||||
verify_text_in_editor_and_update('div.course-handouts .edit-button', before, after)
|
||||
|
||||
|
||||
@step(u'I delete the update$')
|
||||
def click_button(_step):
|
||||
button_css = 'div.post-preview .delete-button'
|
||||
world.css_click(button_css)
|
||||
|
||||
|
||||
@step(u'I edit the date to "([^"]*)"$')
|
||||
def change_date(_step, new_date):
|
||||
button_css = 'div.post-preview .edit-button'
|
||||
world.css_click(button_css)
|
||||
date_css = 'input.date'
|
||||
date = world.css_find(date_css)
|
||||
for __ in range(len(date.value)):
|
||||
date._element.send_keys(Keys.END, Keys.BACK_SPACE)
|
||||
date._element.send_keys(new_date)
|
||||
save_css = '.save-button'
|
||||
world.css_click(save_css)
|
||||
|
||||
|
||||
@step(u'I should see the date "([^"]*)"$')
|
||||
def check_date(_step, date):
|
||||
date_css = 'span.date-display'
|
||||
assert_in(date, world.css_html(date_css))
|
||||
|
||||
|
||||
@step(u'I modify the handout to "([^"]*)"$')
|
||||
def edit_handouts(_step, text):
|
||||
edit_css = 'div.course-handouts > .edit-button'
|
||||
|
||||
@@ -61,3 +61,35 @@ class TestCreateCourse(ModuleStoreTestCase):
|
||||
)
|
||||
# pylint: disable=protected-access
|
||||
self.assertEqual(store, modulestore()._get_modulestore_for_courselike(new_key).get_modulestore_type())
|
||||
|
||||
@ddt.data(ModuleStoreEnum.Type.split, ModuleStoreEnum.Type.mongo)
|
||||
def test_get_course_with_different_case(self, default_store):
|
||||
"""
|
||||
Tests that course can not be accessed with different case.
|
||||
|
||||
Scenario:
|
||||
Create a course with lower case keys inside `bulk_operations` with `ignore_case=True`.
|
||||
Verify that course is created.
|
||||
Verify that get course from store using same course id but different case is not accessible.
|
||||
"""
|
||||
org = 'org1'
|
||||
number = 'course1'
|
||||
run = 'run1'
|
||||
with self.store.default_store(default_store):
|
||||
lowercase_course_id = self.store.make_course_key(org, number, run)
|
||||
with self.store.bulk_operations(lowercase_course_id, ignore_case=True):
|
||||
# Create course with lowercase key & Verify that store returns course.
|
||||
self.store.create_course(
|
||||
lowercase_course_id.org,
|
||||
lowercase_course_id.course,
|
||||
lowercase_course_id.run,
|
||||
self.user.id
|
||||
)
|
||||
course = self.store.get_course(lowercase_course_id)
|
||||
self.assertIsNotNone(course, 'Course not found using lowercase course key.')
|
||||
self.assertEqual(unicode(course.id), unicode(lowercase_course_id))
|
||||
|
||||
# Verify store does not return course with different case.
|
||||
uppercase_course_id = self.store.make_course_key(org.upper(), number.upper(), run.upper())
|
||||
course = self.store.get_course(uppercase_course_id)
|
||||
self.assertIsNone(course, 'Course should not be accessed with uppercase course id.')
|
||||
|
||||
@@ -1151,6 +1151,9 @@ class ContentStoreTest(ContentStoreTestCase, XssTestMixin):
|
||||
"""
|
||||
Tests for the CMS ContentStore application.
|
||||
"""
|
||||
duplicate_course_error = ("There is already a course defined with the same organization and course number. "
|
||||
"Please change either organization or course number to be unique.")
|
||||
|
||||
def setUp(self):
|
||||
super(ContentStoreTest, self).setUp()
|
||||
|
||||
@@ -1203,6 +1206,22 @@ class ContentStoreTest(ContentStoreTestCase, XssTestMixin):
|
||||
self.course_data['run'] = 'run.name'
|
||||
self.assert_created_course()
|
||||
|
||||
@ddt.data(ModuleStoreEnum.Type.split, ModuleStoreEnum.Type.mongo)
|
||||
def test_course_with_different_cases(self, default_store):
|
||||
"""
|
||||
Tests that course can not be created with different case using an AJAX request to
|
||||
course handler.
|
||||
"""
|
||||
course_number = '99x'
|
||||
with self.store.default_store(default_store):
|
||||
# Verify create a course passes with lower case.
|
||||
self.course_data['number'] = course_number.lower()
|
||||
self.assert_created_course()
|
||||
|
||||
# Verify create a course fail when same course number is provided with different case.
|
||||
self.course_data['number'] = course_number.upper()
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
def test_create_course_check_forum_seeding(self):
|
||||
"""Test new course creation and verify forum seeding """
|
||||
test_course_data = self.assert_created_course(number_suffix=uuid4().hex)
|
||||
@@ -1289,7 +1308,7 @@ class ContentStoreTest(ContentStoreTestCase, XssTestMixin):
|
||||
def test_create_course_duplicate_course(self):
|
||||
"""Test new course creation - error path"""
|
||||
self.client.ajax_post('/course/', self.course_data)
|
||||
self.assert_course_creation_failed('There is already a course defined with the same organization and course number. Please change either organization or course number to be unique.')
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
def assert_course_creation_failed(self, error_message):
|
||||
"""
|
||||
@@ -1318,21 +1337,38 @@ class ContentStoreTest(ContentStoreTestCase, XssTestMixin):
|
||||
self.course_data['display_name'] = 'Robot Super Course Two'
|
||||
self.course_data['run'] = '2013_Summer'
|
||||
|
||||
self.assert_course_creation_failed('There is already a course defined with the same organization and course number. Please change either organization or course number to be unique.')
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
def test_create_course_case_change(self):
|
||||
@ddt.data(ModuleStoreEnum.Type.split, ModuleStoreEnum.Type.mongo)
|
||||
def test_create_course_case_change(self, default_store):
|
||||
"""Test new course creation - error path due to case insensitive name equality"""
|
||||
self.course_data['number'] = 'capital'
|
||||
self.client.ajax_post('/course/', self.course_data)
|
||||
cache_current = self.course_data['org']
|
||||
self.course_data['org'] = self.course_data['org'].lower()
|
||||
self.assert_course_creation_failed('There is already a course defined with the same organization and course number. Please change either organization or course number to be unique.')
|
||||
self.course_data['org'] = cache_current
|
||||
self.course_data['number'] = '99x'
|
||||
|
||||
self.client.ajax_post('/course/', self.course_data)
|
||||
cache_current = self.course_data['number']
|
||||
self.course_data['number'] = self.course_data['number'].upper()
|
||||
self.assert_course_creation_failed('There is already a course defined with the same organization and course number. Please change either organization or course number to be unique.')
|
||||
with self.store.default_store(default_store):
|
||||
|
||||
# Verify that the course was created properly.
|
||||
self.assert_created_course()
|
||||
|
||||
# Keep the copy of original org
|
||||
cache_current = self.course_data['org']
|
||||
|
||||
# Change `org` to lower case and verify that course did not get created
|
||||
self.course_data['org'] = self.course_data['org'].lower()
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
# Replace the org with its actual value, and keep the copy of course number.
|
||||
self.course_data['org'] = cache_current
|
||||
cache_current = self.course_data['number']
|
||||
|
||||
self.course_data['number'] = self.course_data['number'].upper()
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
# Replace the org with its actual value, and keep the copy of course number.
|
||||
self.course_data['number'] = cache_current
|
||||
__ = self.course_data['run']
|
||||
|
||||
self.course_data['run'] = self.course_data['run'].upper()
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
def test_course_substring(self):
|
||||
"""
|
||||
|
||||
@@ -16,9 +16,8 @@ from openedx.core.lib.token_utils import JwtBuilder
|
||||
class ProgramAuthoringView(View):
|
||||
"""View rendering a template which hosts the Programs authoring app.
|
||||
|
||||
The Programs authoring app is a Backbone SPA maintained in a separate repository.
|
||||
The app handles its own routing and provides a UI which can be used to create and
|
||||
publish new Programs (e.g, XSeries).
|
||||
The Programs authoring app is a Backbone SPA. The app handles its own routing
|
||||
and provides a UI which can be used to create and publish new Programs.
|
||||
"""
|
||||
|
||||
@method_decorator(login_required)
|
||||
|
||||
@@ -26,7 +26,7 @@ from course_modes.tests.factories import CourseModeFactory
|
||||
from contentstore.views.certificates import CertificateManager
|
||||
from django.test.utils import override_settings
|
||||
from contentstore.utils import get_lms_link_for_certificate_web_view
|
||||
from util.testing import EventTestMixin
|
||||
from util.testing import EventTestMixin, UrlResetMixin
|
||||
|
||||
FEATURES_WITH_CERTS_ENABLED = settings.FEATURES.copy()
|
||||
FEATURES_WITH_CERTS_ENABLED['CERTIFICATES_HTML_VIEW'] = True
|
||||
@@ -197,7 +197,9 @@ class CertificatesBaseTestCase(object):
|
||||
|
||||
@ddt.ddt
|
||||
@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
|
||||
class CertificatesListHandlerTestCase(EventTestMixin, CourseTestCase, CertificatesBaseTestCase, HelperMethods):
|
||||
class CertificatesListHandlerTestCase(
|
||||
EventTestMixin, CourseTestCase, CertificatesBaseTestCase, HelperMethods, UrlResetMixin
|
||||
):
|
||||
"""
|
||||
Test cases for certificates_list_handler.
|
||||
"""
|
||||
@@ -206,6 +208,7 @@ class CertificatesListHandlerTestCase(EventTestMixin, CourseTestCase, Certificat
|
||||
Set up CertificatesListHandlerTestCase.
|
||||
"""
|
||||
super(CertificatesListHandlerTestCase, self).setUp('contentstore.views.certificates.tracker')
|
||||
self.reset_urls()
|
||||
|
||||
def _url(self):
|
||||
"""
|
||||
@@ -420,7 +423,9 @@ class CertificatesListHandlerTestCase(EventTestMixin, CourseTestCase, Certificat
|
||||
|
||||
@ddt.ddt
|
||||
@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
|
||||
class CertificatesDetailHandlerTestCase(EventTestMixin, CourseTestCase, CertificatesBaseTestCase, HelperMethods):
|
||||
class CertificatesDetailHandlerTestCase(
|
||||
EventTestMixin, CourseTestCase, CertificatesBaseTestCase, HelperMethods, UrlResetMixin
|
||||
):
|
||||
"""
|
||||
Test cases for CertificatesDetailHandlerTestCase.
|
||||
"""
|
||||
@@ -432,6 +437,7 @@ class CertificatesDetailHandlerTestCase(EventTestMixin, CourseTestCase, Certific
|
||||
Set up CertificatesDetailHandlerTestCase.
|
||||
"""
|
||||
super(CertificatesDetailHandlerTestCase, self).setUp('contentstore.views.certificates.tracker')
|
||||
self.reset_urls()
|
||||
|
||||
def _url(self, cid=-1):
|
||||
"""
|
||||
|
||||
@@ -8,13 +8,14 @@ from django.test.utils import override_settings
|
||||
|
||||
from contentstore.tests.utils import CourseTestCase
|
||||
from contentstore.utils import reverse_course_url
|
||||
from util.testing import UrlResetMixin
|
||||
|
||||
FEATURES_WITH_CERTS_ENABLED = settings.FEATURES.copy()
|
||||
FEATURES_WITH_CERTS_ENABLED['CERTIFICATES_HTML_VIEW'] = True
|
||||
|
||||
|
||||
@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
|
||||
class TestHeaderMenu(CourseTestCase):
|
||||
class TestHeaderMenu(CourseTestCase, UrlResetMixin):
|
||||
"""
|
||||
Unit tests for the course header menu.
|
||||
"""
|
||||
@@ -23,6 +24,7 @@ class TestHeaderMenu(CourseTestCase):
|
||||
Set up the for the course header menu tests.
|
||||
"""
|
||||
super(TestHeaderMenu, self).setUp()
|
||||
self.reset_urls()
|
||||
|
||||
def test_header_menu_without_web_certs_enabled(self):
|
||||
"""
|
||||
|
||||
0
cms/djangoapps/maintenance/__init__.py
Normal file
0
cms/djangoapps/maintenance/__init__.py
Normal file
248
cms/djangoapps/maintenance/tests.py
Normal file
248
cms/djangoapps/maintenance/tests.py
Normal file
@@ -0,0 +1,248 @@
|
||||
"""
|
||||
Tests for the maintenance app views.
|
||||
"""
|
||||
import ddt
|
||||
import json
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from xmodule.modulestore import ModuleStoreEnum
|
||||
from xmodule.modulestore.django import modulestore
|
||||
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
||||
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
|
||||
|
||||
|
||||
from contentstore.management.commands.utils import get_course_versions
|
||||
from student.tests.factories import AdminFactory, UserFactory
|
||||
|
||||
from .views import COURSE_KEY_ERROR_MESSAGES, MAINTENANCE_VIEWS
|
||||
|
||||
|
||||
# This list contains URLs of all maintenance app views.
|
||||
MAINTENANCE_URLS = [reverse(view['url']) for view in MAINTENANCE_VIEWS.values()]
|
||||
|
||||
|
||||
class TestMaintenanceIndex(ModuleStoreTestCase):
|
||||
"""
|
||||
Tests for maintenance index view.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(TestMaintenanceIndex, self).setUp()
|
||||
self.user = AdminFactory()
|
||||
login_success = self.client.login(username=self.user.username, password='test')
|
||||
self.assertTrue(login_success)
|
||||
self.view_url = reverse('maintenance:maintenance_index')
|
||||
|
||||
def test_maintenance_index(self):
|
||||
"""
|
||||
Test that maintenance index view lists all the maintenance app views.
|
||||
"""
|
||||
response = self.client.get(self.view_url)
|
||||
self.assertContains(response, 'Maintenance', status_code=200)
|
||||
|
||||
# Check that all the expected links appear on the index page.
|
||||
for url in MAINTENANCE_URLS:
|
||||
self.assertContains(response, url, status_code=200)
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class MaintenanceViewTestCase(ModuleStoreTestCase):
|
||||
"""
|
||||
Base class for maintenance view tests.
|
||||
"""
|
||||
view_url = ''
|
||||
|
||||
def setUp(self):
|
||||
super(MaintenanceViewTestCase, self).setUp()
|
||||
self.user = AdminFactory()
|
||||
login_success = self.client.login(username=self.user.username, password='test')
|
||||
self.assertTrue(login_success)
|
||||
|
||||
def verify_error_message(self, data, error_message):
|
||||
"""
|
||||
Verify the response contains error message.
|
||||
"""
|
||||
response = self.client.post(self.view_url, data=data, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
|
||||
self.assertContains(response, error_message, status_code=200)
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
Reverse the setup.
|
||||
"""
|
||||
self.client.logout()
|
||||
super(MaintenanceViewTestCase, self).tearDown()
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class MaintenanceViewAccessTests(MaintenanceViewTestCase):
|
||||
"""
|
||||
Tests for access control of maintenance views.
|
||||
"""
|
||||
@ddt.data(MAINTENANCE_URLS)
|
||||
@ddt.unpack
|
||||
def test_require_login(self, url):
|
||||
"""
|
||||
Test that maintenance app requires user login.
|
||||
"""
|
||||
# Log out then try to retrieve the page
|
||||
self.client.logout()
|
||||
response = self.client.get(url)
|
||||
|
||||
# Expect a redirect to the login page
|
||||
redirect_url = '{login_url}?next={original_url}'.format(
|
||||
login_url=reverse('login'),
|
||||
original_url=url,
|
||||
)
|
||||
|
||||
self.assertRedirects(response, redirect_url)
|
||||
|
||||
@ddt.data(MAINTENANCE_URLS)
|
||||
@ddt.unpack
|
||||
def test_global_staff_access(self, url):
|
||||
"""
|
||||
Test that all maintenance app views are accessible to global staff user.
|
||||
"""
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
@ddt.data(MAINTENANCE_URLS)
|
||||
@ddt.unpack
|
||||
def test_non_global_staff_access(self, url):
|
||||
"""
|
||||
Test that all maintenance app views are not accessible to non-global-staff user.
|
||||
"""
|
||||
user = UserFactory(username='test', email='test@example.com', password='test')
|
||||
login_success = self.client.login(username=user.username, password='test')
|
||||
self.assertTrue(login_success)
|
||||
|
||||
response = self.client.get(url)
|
||||
self.assertContains(
|
||||
response,
|
||||
'Must be {platform_name} staff to perform this action.'.format(platform_name=settings.PLATFORM_NAME),
|
||||
status_code=403
|
||||
)
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
class TestForcePublish(MaintenanceViewTestCase):
|
||||
"""
|
||||
Tests for the force publish view.
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(TestForcePublish, self).setUp()
|
||||
self.view_url = reverse('maintenance:force_publish_course')
|
||||
|
||||
def setup_test_course(self):
|
||||
"""
|
||||
Creates the course and add some changes to it.
|
||||
|
||||
Returns:
|
||||
course: a course object
|
||||
"""
|
||||
course = CourseFactory.create(default_store=ModuleStoreEnum.Type.split)
|
||||
# Add some changes to course
|
||||
chapter = ItemFactory.create(category='chapter', parent_location=course.location)
|
||||
self.store.create_child(
|
||||
self.user.id, # pylint: disable=no-member
|
||||
chapter.location,
|
||||
'html',
|
||||
block_id='html_component'
|
||||
)
|
||||
# verify that course has changes.
|
||||
self.assertTrue(self.store.has_changes(self.store.get_item(course.location)))
|
||||
return course
|
||||
|
||||
@ddt.data(
|
||||
('', COURSE_KEY_ERROR_MESSAGES['empty_course_key']),
|
||||
('edx', COURSE_KEY_ERROR_MESSAGES['invalid_course_key']),
|
||||
('course-v1:e+d+X', COURSE_KEY_ERROR_MESSAGES['course_key_not_found']),
|
||||
)
|
||||
@ddt.unpack
|
||||
def test_invalid_course_key_messages(self, course_key, error_message):
|
||||
"""
|
||||
Test all error messages for invalid course keys.
|
||||
"""
|
||||
# validate that course key contains error message
|
||||
self.verify_error_message(
|
||||
data={'course-id': course_key},
|
||||
error_message=error_message
|
||||
)
|
||||
|
||||
def test_mongo_course(self):
|
||||
"""
|
||||
Test that we get a error message on old mongo courses.
|
||||
"""
|
||||
# validate non split error message
|
||||
course = CourseFactory.create(default_store=ModuleStoreEnum.Type.mongo)
|
||||
self.verify_error_message(
|
||||
data={'course-id': unicode(course.id)},
|
||||
error_message='Force publishing course is not supported with old mongo courses.'
|
||||
)
|
||||
|
||||
def test_already_published(self):
|
||||
"""
|
||||
Test that when a course is forcefully publish, we get a 'course is already published' message.
|
||||
"""
|
||||
course = self.setup_test_course()
|
||||
|
||||
# publish the course
|
||||
source_store = modulestore()._get_modulestore_for_courselike(course.id) # pylint: disable=protected-access
|
||||
source_store.force_publish_course(course.id, self.user.id, commit=True) # pylint: disable=no-member
|
||||
|
||||
# now course is published, we should get `already published course` error.
|
||||
self.verify_error_message(
|
||||
data={'course-id': unicode(course.id)},
|
||||
error_message='Course is already in published state.'
|
||||
)
|
||||
|
||||
def verify_versions_are_different(self, course):
|
||||
"""
|
||||
Verify draft and published versions point to different locations.
|
||||
|
||||
Arguments:
|
||||
course (object): a course object.
|
||||
"""
|
||||
# get draft and publish branch versions
|
||||
versions = get_course_versions(unicode(course.id))
|
||||
|
||||
# verify that draft and publish point to different versions
|
||||
self.assertNotEqual(versions['draft-branch'], versions['published-branch'])
|
||||
|
||||
def get_force_publish_course_response(self, course):
|
||||
"""
|
||||
Get force publish the course response.
|
||||
|
||||
Arguments:
|
||||
course (object): a course object.
|
||||
|
||||
Returns:
|
||||
response : response from force publish post view.
|
||||
"""
|
||||
# Verify versions point to different locations initially
|
||||
self.verify_versions_are_different(course)
|
||||
|
||||
# force publish course view
|
||||
data = {
|
||||
'course-id': unicode(course.id)
|
||||
}
|
||||
response = self.client.post(self.view_url, data=data, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
|
||||
response_data = json.loads(response.content)
|
||||
return response_data
|
||||
|
||||
def test_force_publish_dry_run(self):
|
||||
"""
|
||||
Test that dry run does not publishes the course but shows possible outcome if force published is executed.
|
||||
"""
|
||||
course = self.setup_test_course()
|
||||
response = self.get_force_publish_course_response(course)
|
||||
|
||||
self.assertIn('current_versions', response)
|
||||
|
||||
# verify that course still has changes as we just dry ran force publish course.
|
||||
self.assertTrue(self.store.has_changes(self.store.get_item(course.location)))
|
||||
|
||||
# verify that both branch versions are still different
|
||||
self.verify_versions_are_different(course)
|
||||
13
cms/djangoapps/maintenance/urls.py
Normal file
13
cms/djangoapps/maintenance/urls.py
Normal file
@@ -0,0 +1,13 @@
|
||||
"""
|
||||
URLs for the maintenance app.
|
||||
"""
|
||||
from django.conf.urls import patterns, url
|
||||
|
||||
from .views import MaintenanceIndexView, ForcePublishCourseView
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'',
|
||||
url(r'^$', MaintenanceIndexView.as_view(), name='maintenance_index'),
|
||||
url(r'^force_publish_course/?$', ForcePublishCourseView.as_view(), name='force_publish_course'),
|
||||
)
|
||||
213
cms/djangoapps/maintenance/views.py
Normal file
213
cms/djangoapps/maintenance/views.py
Normal file
@@ -0,0 +1,213 @@
|
||||
"""
|
||||
Views for the maintenance app.
|
||||
"""
|
||||
import logging
|
||||
from django.db import transaction
|
||||
from django.core.validators import ValidationError
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.views.generic import View
|
||||
|
||||
from edxmako.shortcuts import render_to_response
|
||||
from opaque_keys import InvalidKeyError
|
||||
from opaque_keys.edx.keys import CourseKey
|
||||
from xmodule.modulestore import ModuleStoreEnum
|
||||
from xmodule.modulestore.django import modulestore
|
||||
from xmodule.modulestore.exceptions import ItemNotFoundError
|
||||
|
||||
from contentstore.management.commands.utils import get_course_versions
|
||||
from util.json_request import JsonResponse
|
||||
from util.views import require_global_staff
|
||||
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
# This dict maintains all the views that will be used Maintenance app.
|
||||
MAINTENANCE_VIEWS = {
|
||||
'force_publish_course': {
|
||||
'url': 'maintenance:force_publish_course',
|
||||
'name': _('Force Publish Course'),
|
||||
'slug': 'force_publish_course',
|
||||
'description': _(
|
||||
'Sometimes the draft and published branches of a course can get out of sync. Force publish course command '
|
||||
'resets the published branch of a course to point to the draft branch, effectively force publishing the '
|
||||
'course. This view dry runs the force publish command'
|
||||
),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
COURSE_KEY_ERROR_MESSAGES = {
|
||||
'empty_course_key': _('Please provide course id.'),
|
||||
'invalid_course_key': _('Invalid course key.'),
|
||||
'course_key_not_found': _('No matching course found.')
|
||||
}
|
||||
|
||||
|
||||
class MaintenanceIndexView(View):
|
||||
"""
|
||||
Index view for maintenance dashboard, used by global staff.
|
||||
|
||||
This view lists some commands/tasks that can be used to dry run or execute directly.
|
||||
"""
|
||||
|
||||
@method_decorator(require_global_staff)
|
||||
def get(self, request):
|
||||
"""Render the maintenance index view. """
|
||||
return render_to_response('maintenance/index.html', {
|
||||
'views': MAINTENANCE_VIEWS,
|
||||
})
|
||||
|
||||
|
||||
class MaintenanceBaseView(View):
|
||||
"""
|
||||
Base class for Maintenance views.
|
||||
"""
|
||||
|
||||
template = 'maintenance/container.html'
|
||||
|
||||
def __init__(self, view=None):
|
||||
self.context = {
|
||||
'view': view if view else '',
|
||||
'form_data': {},
|
||||
'error': False,
|
||||
'msg': ''
|
||||
}
|
||||
|
||||
def render_response(self):
|
||||
"""
|
||||
A short method to render_to_response that renders response.
|
||||
"""
|
||||
if self.request.is_ajax():
|
||||
return JsonResponse(self.context)
|
||||
return render_to_response(self.template, self.context)
|
||||
|
||||
@method_decorator(require_global_staff)
|
||||
def get(self, request):
|
||||
"""
|
||||
Render get view.
|
||||
"""
|
||||
return self.render_response()
|
||||
|
||||
def validate_course_key(self, course_key, branch=ModuleStoreEnum.BranchName.draft):
|
||||
"""
|
||||
Validates the course_key that would be used by maintenance app views.
|
||||
|
||||
Arguments:
|
||||
course_key (string): a course key
|
||||
branch: a course locator branch, default value is ModuleStoreEnum.BranchName.draft .
|
||||
values can be either ModuleStoreEnum.BranchName.draft or ModuleStoreEnum.BranchName.published.
|
||||
|
||||
Returns:
|
||||
course_usage_key (CourseLocator): course usage locator
|
||||
"""
|
||||
if not course_key:
|
||||
raise ValidationError(COURSE_KEY_ERROR_MESSAGES['empty_course_key'])
|
||||
|
||||
course_usage_key = CourseKey.from_string(course_key)
|
||||
|
||||
if not modulestore().has_course(course_usage_key):
|
||||
raise ItemNotFoundError(COURSE_KEY_ERROR_MESSAGES['course_key_not_found'])
|
||||
|
||||
# get branch specific locator
|
||||
course_usage_key = course_usage_key.for_branch(branch)
|
||||
|
||||
return course_usage_key
|
||||
|
||||
|
||||
class ForcePublishCourseView(MaintenanceBaseView):
|
||||
"""
|
||||
View for force publishing state of the course, used by the global staff.
|
||||
|
||||
This view uses `force_publish_course` method of modulestore which publishes the draft state of the course. After
|
||||
the course has been forced published, both draft and publish draft point to same location.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
super(ForcePublishCourseView, self).__init__(MAINTENANCE_VIEWS['force_publish_course'])
|
||||
self.context.update({
|
||||
'current_versions': [],
|
||||
'updated_versions': [],
|
||||
'form_data': {
|
||||
'course_id': '',
|
||||
'is_dry_run': True
|
||||
}
|
||||
})
|
||||
|
||||
def get_course_branch_versions(self, versions):
|
||||
"""
|
||||
Returns a dict containing unicoded values of draft and published draft versions.
|
||||
"""
|
||||
return {
|
||||
'draft-branch': unicode(versions['draft-branch']),
|
||||
'published-branch': unicode(versions['published-branch'])
|
||||
}
|
||||
|
||||
@transaction.atomic
|
||||
@method_decorator(require_global_staff)
|
||||
def post(self, request):
|
||||
"""
|
||||
This method force publishes a course if dry-run argument is not selected. If dry-run is selected, this view
|
||||
shows possible outcome if the `force_publish_course` modulestore method is executed.
|
||||
|
||||
Arguments:
|
||||
course_id (string): a request parameter containing course id
|
||||
is_dry_run (string): a request parameter containing dry run value.
|
||||
It is obtained from checkbox so it has either values 'on' or ''.
|
||||
"""
|
||||
course_id = request.POST.get('course-id')
|
||||
|
||||
self.context.update({
|
||||
'form_data': {
|
||||
'course_id': course_id
|
||||
}
|
||||
})
|
||||
|
||||
try:
|
||||
course_usage_key = self.validate_course_key(course_id)
|
||||
except InvalidKeyError:
|
||||
self.context['error'] = True
|
||||
self.context['msg'] = COURSE_KEY_ERROR_MESSAGES['invalid_course_key']
|
||||
except ItemNotFoundError as exc:
|
||||
self.context['error'] = True
|
||||
self.context['msg'] = exc.message
|
||||
except ValidationError as exc:
|
||||
self.context['error'] = True
|
||||
self.context['msg'] = exc.message
|
||||
|
||||
if self.context['error']:
|
||||
return self.render_response()
|
||||
|
||||
source_store = modulestore()._get_modulestore_for_courselike(course_usage_key) # pylint: disable=protected-access
|
||||
if not hasattr(source_store, 'force_publish_course'):
|
||||
self.context['msg'] = _('Force publishing course is not supported with old mongo courses.')
|
||||
log.warning(
|
||||
'Force publishing course is not supported with old mongo courses. \
|
||||
%s attempted to force publish the course %s.',
|
||||
request.user,
|
||||
course_id,
|
||||
exc_info=True
|
||||
)
|
||||
return self.render_response()
|
||||
|
||||
current_versions = self.get_course_branch_versions(get_course_versions(course_id))
|
||||
|
||||
# if publish and draft are NOT different
|
||||
if current_versions['published-branch'] == current_versions['draft-branch']:
|
||||
self.context['msg'] = _('Course is already in published state.')
|
||||
log.warning(
|
||||
'Course is already in published state. %s attempted to force publish the course %s.',
|
||||
request.user,
|
||||
course_id,
|
||||
exc_info=True
|
||||
)
|
||||
return self.render_response()
|
||||
|
||||
self.context['current_versions'] = current_versions
|
||||
log.info(
|
||||
'%s dry ran force publish the course %s.',
|
||||
request.user,
|
||||
course_id,
|
||||
exc_info=True
|
||||
)
|
||||
return self.render_response()
|
||||
@@ -834,6 +834,9 @@ INSTALLED_APPS = (
|
||||
'openedx.core.djangoapps.coursetalk', # not used in cms (yet), but tests run
|
||||
'xblock_config',
|
||||
|
||||
# Maintenance tools
|
||||
'maintenance',
|
||||
|
||||
# Tracking
|
||||
'track',
|
||||
'eventtracking.django.apps.EventTrackingConfig',
|
||||
@@ -933,6 +936,9 @@ INSTALLED_APPS = (
|
||||
|
||||
# Enables default site and redirects
|
||||
'django_sites_extensions',
|
||||
|
||||
# additional release utilities to ease automation
|
||||
'release_util'
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
var getModulesList = function(modules) {
|
||||
var result = [getModule(commonLibrariesPath)];
|
||||
return result.concat(modules.map(function (moduleName) {
|
||||
return result.concat(modules.map(function(moduleName) {
|
||||
return getModule(moduleName, true);
|
||||
}));
|
||||
};
|
||||
@@ -171,4 +171,5 @@
|
||||
*/
|
||||
logLevel: 1
|
||||
};
|
||||
}())
|
||||
}()) // eslint-disable-line semi
|
||||
// A semicolon on the line above will break the requirejs optimizer
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;(function(require, define) {
|
||||
(function(require, define) {
|
||||
'use strict';
|
||||
|
||||
if (window) {
|
||||
@@ -210,12 +210,12 @@
|
||||
window.MathJax.Hub.Config({
|
||||
tex2jax: {
|
||||
inlineMath: [
|
||||
['\\(','\\)'],
|
||||
['[mathjaxinline]','[/mathjaxinline]']
|
||||
['\\(', '\\)'],
|
||||
['[mathjaxinline]', '[/mathjaxinline]']
|
||||
],
|
||||
displayMath: [
|
||||
['\\[','\\]'],
|
||||
['[mathjax]','[/mathjax]']
|
||||
['\\[', '\\]'],
|
||||
['[mathjax]', '[/mathjax]']
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
@@ -2,81 +2,81 @@
|
||||
|
||||
(function(sandbox) {
|
||||
'use strict';
|
||||
require(["jquery", "backbone", "cms/js/main", "edx-ui-toolkit/js/utils/spec-helpers/ajax-helpers", "jquery.cookie"],
|
||||
require(['jquery', 'backbone', 'cms/js/main', 'edx-ui-toolkit/js/utils/spec-helpers/ajax-helpers', 'jquery.cookie'],
|
||||
function($, Backbone, main, AjaxHelpers) {
|
||||
describe("CMS", function() {
|
||||
it("should initialize URL", function() {
|
||||
expect(window.CMS.URL).toBeDefined();
|
||||
});
|
||||
});
|
||||
describe("main helper", function() {
|
||||
beforeEach(function() {
|
||||
this.previousAjaxSettings = $.extend(true, {}, $.ajaxSettings);
|
||||
spyOn($, "cookie").and.callFake(function(param) {
|
||||
if (param === "csrftoken") {
|
||||
return "stubCSRFToken";
|
||||
}
|
||||
describe('CMS', function() {
|
||||
it('should initialize URL', function() {
|
||||
expect(window.CMS.URL).toBeDefined();
|
||||
});
|
||||
});
|
||||
return main();
|
||||
});
|
||||
afterEach(function() {
|
||||
$.ajaxSettings = this.previousAjaxSettings;
|
||||
return $.ajaxSettings;
|
||||
});
|
||||
it("turn on Backbone emulateHTTP", function() {
|
||||
expect(Backbone.emulateHTTP).toBeTruthy();
|
||||
});
|
||||
it("setup AJAX CSRF token", function() {
|
||||
expect($.ajaxSettings.headers["X-CSRFToken"]).toEqual("stubCSRFToken");
|
||||
});
|
||||
});
|
||||
describe("AJAX Errors", function() {
|
||||
var server;
|
||||
server = null;
|
||||
beforeEach(function() {
|
||||
appendSetFixtures(sandbox({
|
||||
id: "page-notification"
|
||||
}));
|
||||
});
|
||||
afterEach(function() {
|
||||
return server && server.restore();
|
||||
});
|
||||
it("successful AJAX request does not pop an error notification", function() {
|
||||
server = AjaxHelpers.server([
|
||||
200, {
|
||||
"Content-Type": "application/json"
|
||||
}, "{}"
|
||||
]);
|
||||
expect($("#page-notification")).toBeEmpty();
|
||||
$.ajax("/test");
|
||||
expect($("#page-notification")).toBeEmpty();
|
||||
server.respond();
|
||||
expect($("#page-notification")).toBeEmpty();
|
||||
});
|
||||
it("AJAX request with error should pop an error notification", function() {
|
||||
server = AjaxHelpers.server([
|
||||
500, {
|
||||
"Content-Type": "application/json"
|
||||
}, "{}"
|
||||
]);
|
||||
$.ajax("/test");
|
||||
server.respond();
|
||||
expect($("#page-notification")).not.toBeEmpty();
|
||||
expect($("#page-notification")).toContainElement('div.wrapper-notification-error');
|
||||
});
|
||||
it("can override AJAX request with error so it does not pop an error notification", function() {
|
||||
server = AjaxHelpers.server([
|
||||
500, {
|
||||
"Content-Type": "application/json"
|
||||
}, "{}"
|
||||
]);
|
||||
$.ajax({
|
||||
url: "/test",
|
||||
notifyOnError: false
|
||||
describe('main helper', function() {
|
||||
beforeEach(function() {
|
||||
this.previousAjaxSettings = $.extend(true, {}, $.ajaxSettings);
|
||||
spyOn($, 'cookie').and.callFake(function(param) {
|
||||
if (param === 'csrftoken') {
|
||||
return 'stubCSRFToken';
|
||||
}
|
||||
});
|
||||
return main();
|
||||
});
|
||||
afterEach(function() {
|
||||
$.ajaxSettings = this.previousAjaxSettings;
|
||||
return $.ajaxSettings;
|
||||
});
|
||||
it('turn on Backbone emulateHTTP', function() {
|
||||
expect(Backbone.emulateHTTP).toBeTruthy();
|
||||
});
|
||||
it('setup AJAX CSRF token', function() {
|
||||
expect($.ajaxSettings.headers['X-CSRFToken']).toEqual('stubCSRFToken');
|
||||
});
|
||||
});
|
||||
describe('AJAX Errors', function() {
|
||||
var server;
|
||||
server = null;
|
||||
beforeEach(function() {
|
||||
appendSetFixtures(sandbox({
|
||||
id: 'page-notification'
|
||||
}));
|
||||
});
|
||||
afterEach(function() {
|
||||
return server && server.restore();
|
||||
});
|
||||
it('successful AJAX request does not pop an error notification', function() {
|
||||
server = AjaxHelpers.server([
|
||||
200, {
|
||||
'Content-Type': 'application/json'
|
||||
}, '{}'
|
||||
]);
|
||||
expect($('#page-notification')).toBeEmpty();
|
||||
$.ajax('/test');
|
||||
expect($('#page-notification')).toBeEmpty();
|
||||
server.respond();
|
||||
expect($('#page-notification')).toBeEmpty();
|
||||
});
|
||||
it('AJAX request with error should pop an error notification', function() {
|
||||
server = AjaxHelpers.server([
|
||||
500, {
|
||||
'Content-Type': 'application/json'
|
||||
}, '{}'
|
||||
]);
|
||||
$.ajax('/test');
|
||||
server.respond();
|
||||
expect($('#page-notification')).not.toBeEmpty();
|
||||
expect($('#page-notification')).toContainElement('div.wrapper-notification-error');
|
||||
});
|
||||
it('can override AJAX request with error so it does not pop an error notification', function() {
|
||||
server = AjaxHelpers.server([
|
||||
500, {
|
||||
'Content-Type': 'application/json'
|
||||
}, '{}'
|
||||
]);
|
||||
$.ajax({
|
||||
url: '/test',
|
||||
notifyOnError: false
|
||||
});
|
||||
server.respond();
|
||||
expect($('#page-notification')).toBeEmpty();
|
||||
});
|
||||
});
|
||||
server.respond();
|
||||
expect($("#page-notification")).toBeEmpty();
|
||||
});
|
||||
});
|
||||
});
|
||||
}).call(this, sandbox);
|
||||
|
||||
@@ -24,7 +24,6 @@ define(['jquery', 'backbone', 'xblock/runtime.v1', 'URI', 'gettext', 'js/utils/m
|
||||
StudioRuntime = {};
|
||||
|
||||
BaseRuntime.v1 = (function(_super) {
|
||||
|
||||
__extends(v1, _super);
|
||||
|
||||
v1.prototype.handlerUrl = function(element, handlerName, suffix, query) {
|
||||
@@ -150,11 +149,9 @@ define(['jquery', 'backbone', 'xblock/runtime.v1', 'URI', 'gettext', 'js/utils/m
|
||||
};
|
||||
|
||||
return v1;
|
||||
|
||||
})(XBlock.Runtime.v1);
|
||||
|
||||
PreviewRuntime.v1 = (function(_super) {
|
||||
|
||||
__extends(v1, _super);
|
||||
|
||||
function v1() {
|
||||
@@ -164,11 +161,9 @@ define(['jquery', 'backbone', 'xblock/runtime.v1', 'URI', 'gettext', 'js/utils/m
|
||||
v1.prototype.handlerPrefix = '/preview/xblock';
|
||||
|
||||
return v1;
|
||||
|
||||
})(BaseRuntime.v1);
|
||||
|
||||
StudioRuntime.v1 = (function(_super) {
|
||||
|
||||
__extends(v1, _super);
|
||||
|
||||
function v1() {
|
||||
@@ -178,7 +173,6 @@ define(['jquery', 'backbone', 'xblock/runtime.v1', 'URI', 'gettext', 'js/utils/m
|
||||
v1.prototype.handlerPrefix = '/xblock';
|
||||
|
||||
return v1;
|
||||
|
||||
})(BaseRuntime.v1);
|
||||
|
||||
// Install the runtime's into the global namespace
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
require([
|
||||
"domReady",
|
||||
"jquery",
|
||||
"underscore",
|
||||
"gettext",
|
||||
"common/js/components/views/feedback_notification",
|
||||
"common/js/components/views/feedback_prompt",
|
||||
"js/utils/date_utils",
|
||||
"js/utils/module",
|
||||
"js/utils/handle_iframe_binding",
|
||||
"edx-ui-toolkit/js/dropdown-menu/dropdown-menu-view",
|
||||
"jquery.ui",
|
||||
"jquery.leanModal",
|
||||
"jquery.form",
|
||||
"jquery.smoothScroll"
|
||||
],
|
||||
'domReady',
|
||||
'jquery',
|
||||
'underscore',
|
||||
'gettext',
|
||||
'common/js/components/views/feedback_notification',
|
||||
'common/js/components/views/feedback_prompt',
|
||||
'js/utils/date_utils',
|
||||
'js/utils/module',
|
||||
'js/utils/handle_iframe_binding',
|
||||
'edx-ui-toolkit/js/dropdown-menu/dropdown-menu-view',
|
||||
'jquery.ui',
|
||||
'jquery.leanModal',
|
||||
'jquery.form',
|
||||
'jquery.smoothScroll'
|
||||
],
|
||||
function(
|
||||
domReady,
|
||||
$,
|
||||
@@ -27,113 +27,110 @@ require([
|
||||
DropdownMenuView
|
||||
)
|
||||
{
|
||||
var $body;
|
||||
|
||||
var $body;
|
||||
domReady(function() {
|
||||
var dropdownMenuView;
|
||||
|
||||
domReady(function() {
|
||||
var dropdownMenuView;
|
||||
|
||||
$body = $('body');
|
||||
$body = $('body');
|
||||
|
||||
$body.on('click', '.embeddable-xml-input', function() {
|
||||
$(this).select();
|
||||
});
|
||||
$body.on('click', '.embeddable-xml-input', function() {
|
||||
$(this).select();
|
||||
});
|
||||
|
||||
$body.addClass('js');
|
||||
$body.addClass('js');
|
||||
|
||||
// alerts/notifications - manual close
|
||||
$('.action-alert-close, .alert.has-actions .nav-actions a').bind('click', hideAlert);
|
||||
$('.action-notification-close').bind('click', hideNotification);
|
||||
// alerts/notifications - manual close
|
||||
$('.action-alert-close, .alert.has-actions .nav-actions a').bind('click', hideAlert);
|
||||
$('.action-notification-close').bind('click', hideNotification);
|
||||
|
||||
// nav - dropdown related
|
||||
$body.click(function(e) {
|
||||
$('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown');
|
||||
$('.nav-dd .nav-item .title').removeClass('is-selected');
|
||||
});
|
||||
// nav - dropdown related
|
||||
$body.click(function(e) {
|
||||
$('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown');
|
||||
$('.nav-dd .nav-item .title').removeClass('is-selected');
|
||||
});
|
||||
|
||||
$('.nav-dd .nav-item, .filterable-column .nav-item').click(function(e) {
|
||||
$('.nav-dd .nav-item, .filterable-column .nav-item').click(function(e) {
|
||||
$subnav = $(this).find('.wrapper-nav-sub');
|
||||
$title = $(this).find('.title');
|
||||
|
||||
$subnav = $(this).find('.wrapper-nav-sub');
|
||||
$title = $(this).find('.title');
|
||||
|
||||
if ($subnav.hasClass('is-shown')) {
|
||||
$subnav.removeClass('is-shown');
|
||||
$title.removeClass('is-selected');
|
||||
} else {
|
||||
$('.nav-dd .nav-item .title').removeClass('is-selected');
|
||||
$('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown');
|
||||
$title.addClass('is-selected');
|
||||
$subnav.addClass('is-shown');
|
||||
if ($subnav.hasClass('is-shown')) {
|
||||
$subnav.removeClass('is-shown');
|
||||
$title.removeClass('is-selected');
|
||||
} else {
|
||||
$('.nav-dd .nav-item .title').removeClass('is-selected');
|
||||
$('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown');
|
||||
$title.addClass('is-selected');
|
||||
$subnav.addClass('is-shown');
|
||||
// if propagation is not stopped, the event will bubble up to the
|
||||
// body element, which will close the dropdown.
|
||||
e.stopPropagation();
|
||||
}
|
||||
});
|
||||
e.stopPropagation();
|
||||
}
|
||||
});
|
||||
|
||||
// general link management - new window/tab
|
||||
$('a[rel="external"]:not([title])').attr('title', gettext('This link will open in a new browser window/tab'));
|
||||
$('a[rel="external"]').attr('target', '_blank');
|
||||
// general link management - new window/tab
|
||||
$('a[rel="external"]:not([title])').attr('title', gettext('This link will open in a new browser window/tab'));
|
||||
$('a[rel="external"]').attr('target', '_blank');
|
||||
|
||||
// general link management - lean modal window
|
||||
$('a[rel="modal"]').attr('title', gettext('This link will open in a modal window')).leanModal({
|
||||
overlay: 0.50,
|
||||
closeButton: '.action-modal-close'
|
||||
});
|
||||
$('.action-modal-close').click(function(e) {
|
||||
(e).preventDefault();
|
||||
});
|
||||
// general link management - lean modal window
|
||||
$('a[rel="modal"]').attr('title', gettext('This link will open in a modal window')).leanModal({
|
||||
overlay: 0.50,
|
||||
closeButton: '.action-modal-close'
|
||||
});
|
||||
$('.action-modal-close').click(function(e) {
|
||||
(e).preventDefault();
|
||||
});
|
||||
|
||||
// general link management - smooth scrolling page links
|
||||
$('a[rel*="view"][href^="#"]').bind('click', smoothScrollLink);
|
||||
// general link management - smooth scrolling page links
|
||||
$('a[rel*="view"][href^="#"]').bind('click', smoothScrollLink);
|
||||
|
||||
IframeUtils.iframeBinding();
|
||||
IframeUtils.iframeBinding();
|
||||
|
||||
// disable ajax caching in IE so that backbone fetches work
|
||||
if ($.browser.msie) {
|
||||
$.ajaxSetup({ cache: false });
|
||||
}
|
||||
// disable ajax caching in IE so that backbone fetches work
|
||||
if ($.browser.msie) {
|
||||
$.ajaxSetup({cache: false});
|
||||
}
|
||||
|
||||
//Initiate the edx tool kit dropdown menu
|
||||
if ($('.js-header-user-menu').length){
|
||||
dropdownMenuView = new DropdownMenuView({
|
||||
el: '.js-header-user-menu'
|
||||
// Initiate the edx tool kit dropdown menu
|
||||
if ($('.js-header-user-menu').length) {
|
||||
dropdownMenuView = new DropdownMenuView({
|
||||
el: '.js-header-user-menu'
|
||||
});
|
||||
dropdownMenuView.postRender();
|
||||
}
|
||||
});
|
||||
dropdownMenuView.postRender();
|
||||
}
|
||||
});
|
||||
|
||||
function smoothScrollLink(e) {
|
||||
(e).preventDefault();
|
||||
function smoothScrollLink(e) {
|
||||
(e).preventDefault();
|
||||
|
||||
$.smoothScroll({
|
||||
offset: -200,
|
||||
easing: 'swing',
|
||||
speed: 1000,
|
||||
scrollElement: null,
|
||||
scrollTarget: $(this).attr('href')
|
||||
});
|
||||
}
|
||||
$.smoothScroll({
|
||||
offset: -200,
|
||||
easing: 'swing',
|
||||
speed: 1000,
|
||||
scrollElement: null,
|
||||
scrollTarget: $(this).attr('href')
|
||||
});
|
||||
}
|
||||
|
||||
function smoothScrollTop(e) {
|
||||
(e).preventDefault();
|
||||
function smoothScrollTop(e) {
|
||||
(e).preventDefault();
|
||||
|
||||
$.smoothScroll({
|
||||
offset: -200,
|
||||
easing: 'swing',
|
||||
speed: 1000,
|
||||
scrollElement: null,
|
||||
scrollTarget: $('#view-top')
|
||||
});
|
||||
}
|
||||
$.smoothScroll({
|
||||
offset: -200,
|
||||
easing: 'swing',
|
||||
speed: 1000,
|
||||
scrollElement: null,
|
||||
scrollTarget: $('#view-top')
|
||||
});
|
||||
}
|
||||
|
||||
function hideNotification(e) {
|
||||
(e).preventDefault();
|
||||
$(this).closest('.wrapper-notification').removeClass('is-shown').addClass('is-hiding').attr('aria-hidden', 'true');
|
||||
}
|
||||
function hideNotification(e) {
|
||||
(e).preventDefault();
|
||||
$(this).closest('.wrapper-notification').removeClass('is-shown').addClass('is-hiding').attr('aria-hidden', 'true');
|
||||
}
|
||||
|
||||
function hideAlert(e) {
|
||||
(e).preventDefault();
|
||||
$(this).closest('.wrapper-alert').removeClass('is-shown');
|
||||
}
|
||||
|
||||
}); // end require()
|
||||
function hideAlert(e) {
|
||||
(e).preventDefault();
|
||||
$(this).closest('.wrapper-alert').removeClass('is-shown');
|
||||
}
|
||||
}); // end require()
|
||||
|
||||
@@ -29,7 +29,7 @@ function(Backbone, gettext, Certificate) {
|
||||
} catch (ex) {
|
||||
// If it didn't parse, and `certificate_info` is an object then return as it is
|
||||
// otherwise return empty array
|
||||
if (typeof certificate_info === 'object'){
|
||||
if (typeof certificate_info === 'object') {
|
||||
return_array = certificate_info;
|
||||
}
|
||||
else {
|
||||
@@ -44,28 +44,28 @@ function(Backbone, gettext, Certificate) {
|
||||
return return_array;
|
||||
},
|
||||
|
||||
onModelRemoved: function () {
|
||||
onModelRemoved: function() {
|
||||
// remove the certificate web preview UI.
|
||||
if(window.certWebPreview && this.length === 0) {
|
||||
if (window.certWebPreview && this.length === 0) {
|
||||
window.certWebPreview.remove();
|
||||
}
|
||||
this.toggleAddNewItemButtonState();
|
||||
},
|
||||
|
||||
onModelAdd: function () {
|
||||
onModelAdd: function() {
|
||||
this.toggleAddNewItemButtonState();
|
||||
},
|
||||
|
||||
toggleAddNewItemButtonState: function() {
|
||||
// user can create a new item e.g certificate; if not exceeded the maxAllowed limit.
|
||||
if(this.length >= this.maxAllowed) {
|
||||
$(".action-add").addClass('action-add-hidden');
|
||||
if (this.length >= this.maxAllowed) {
|
||||
$('.action-add').addClass('action-add-hidden');
|
||||
} else {
|
||||
$(".action-add").removeClass('action-add-hidden');
|
||||
$('.action-add').removeClass('action-add-hidden');
|
||||
}
|
||||
},
|
||||
|
||||
parse: function (certificatesJson) {
|
||||
parse: function(certificatesJson) {
|
||||
// Transforms the provided JSON into a Certificates collection
|
||||
var modelArray = this.certificate_array(certificatesJson);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ define([
|
||||
],
|
||||
function($, CertificatesCollection, Certificate, CertificatesPage, CertificatePreview) {
|
||||
'use strict';
|
||||
return function (certificatesJson, certificateUrl, courseOutlineUrl, course_modes, certificate_web_view_url,
|
||||
return function(certificatesJson, certificateUrl, courseOutlineUrl, course_modes, certificate_web_view_url,
|
||||
is_active, certificate_activation_handler_url) {
|
||||
// Initialize the model collection, passing any necessary options to the constructor
|
||||
var certificatesCollection = new CertificatesCollection(certificatesJson, {
|
||||
@@ -31,7 +31,7 @@ function($, CertificatesCollection, Certificate, CertificatesPage, CertificatePr
|
||||
|
||||
// associating the certificate_preview globally.
|
||||
// need to show / hide this view in some other places.
|
||||
if(!window.certWebPreview && certificate_web_view_url) {
|
||||
if (!window.certWebPreview && certificate_web_view_url) {
|
||||
window.certWebPreview = new CertificatePreview({
|
||||
course_modes: course_modes,
|
||||
certificate_web_view_url: certificate_web_view_url,
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
// Backbone.js Application Model: Certificate
|
||||
|
||||
define([
|
||||
'underscore',
|
||||
'backbone',
|
||||
'backbone-relational',
|
||||
'backbone.associations',
|
||||
'gettext',
|
||||
'cms/js/main',
|
||||
'js/certificates/models/signatory',
|
||||
'js/certificates/collections/signatories'
|
||||
],
|
||||
'underscore',
|
||||
'backbone',
|
||||
'backbone-relational',
|
||||
'backbone.associations',
|
||||
'gettext',
|
||||
'cms/js/main',
|
||||
'js/certificates/models/signatory',
|
||||
'js/certificates/collections/signatories'
|
||||
],
|
||||
function(_, Backbone, BackboneRelational, BackboneAssociations, gettext, CoffeeSrcMain,
|
||||
SignatoryModel, SignatoryCollection) {
|
||||
'use strict';
|
||||
@@ -78,7 +78,7 @@ define([
|
||||
attributes: {name: true}
|
||||
};
|
||||
}
|
||||
var allSignatoriesValid = _.every(attrs.signatories.models, function(signatory){
|
||||
var allSignatoriesValid = _.every(attrs.signatories.models, function(signatory) {
|
||||
return signatory.isValid();
|
||||
});
|
||||
if (!allSignatoriesValid) {
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
|
||||
define(['jquery'], function($) { // eslint-disable-line no-unused-vars
|
||||
'use strict';
|
||||
return function () {
|
||||
return function() {
|
||||
jasmine.addMatchers({
|
||||
toBeCorrectValuesInModel: function () {
|
||||
toBeCorrectValuesInModel: function() {
|
||||
// Assert the value being tested has key values which match the provided values
|
||||
return {
|
||||
compare: function (actual, values) {
|
||||
var passed = _.every(values, function (value, key) {
|
||||
compare: function(actual, values) {
|
||||
var passed = _.every(values, function(value, key) {
|
||||
return actual.get(key) === value;
|
||||
}.bind(this));
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ function(CertificateModel, CertificateCollection) {
|
||||
beforeEach(function() {
|
||||
this.newModelOptions = {add: true};
|
||||
this.model = new CertificateModel({editing: true}, this.newModelOptions);
|
||||
this.collection = new CertificateCollection([ this.model ], {certificateUrl: '/outline'});
|
||||
this.collection = new CertificateCollection([this.model], {certificateUrl: '/outline'});
|
||||
});
|
||||
|
||||
describe('Basic', function() {
|
||||
@@ -39,18 +39,16 @@ function(CertificateModel, CertificateCollection) {
|
||||
|
||||
describe('Validation', function() {
|
||||
it('requires a name', function() {
|
||||
var model = new CertificateModel({ name: '' }, this.newModelOptions);
|
||||
var model = new CertificateModel({name: ''}, this.newModelOptions);
|
||||
|
||||
expect(model.isValid()).toBeFalsy();
|
||||
});
|
||||
|
||||
it('can pass validation', function() {
|
||||
var model = new CertificateModel({ name: 'foo' }, this.newModelOptions);
|
||||
var model = new CertificateModel({name: 'foo'}, this.newModelOptions);
|
||||
|
||||
expect(model.isValid()).toBeTruthy();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -41,15 +41,15 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
inputSignatoryTitle: '.signatory-title-input',
|
||||
inputSignatoryOrganization: '.signatory-organization-input'
|
||||
};
|
||||
var verifyAndConfirmPrompt = function(promptSpy, promptText){
|
||||
var verifyAndConfirmPrompt = function(promptSpy, promptText) {
|
||||
ViewHelpers.verifyPromptShowing(promptSpy, gettext(promptText));
|
||||
ViewHelpers.confirmPrompt(promptSpy);
|
||||
ViewHelpers.verifyPromptHidden(promptSpy);
|
||||
};
|
||||
|
||||
describe('Certificate Details Spec:', function() {
|
||||
var setValuesToInputs = function (view, values) {
|
||||
_.each(values, function (value, selector) {
|
||||
var setValuesToInputs = function(view, values) {
|
||||
_.each(values, function(value, selector) {
|
||||
if (SELECTORS[selector]) {
|
||||
view.$(SELECTORS[selector]).val(value);
|
||||
view.$(SELECTORS[selector]).trigger('change');
|
||||
@@ -96,8 +96,8 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
is_active: true
|
||||
}, this.newModelOptions);
|
||||
|
||||
this.collection = new CertificatesCollection([ this.model ], {
|
||||
certificateUrl: '/certificates/'+ window.course.id
|
||||
this.collection = new CertificatesCollection([this.model], {
|
||||
certificateUrl: '/certificates/' + window.course.id
|
||||
});
|
||||
this.model.set('id', 0);
|
||||
this.view = new CertificateDetailsView({
|
||||
@@ -120,44 +120,43 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
|
||||
|
||||
describe('The Certificate Details view', function() {
|
||||
|
||||
it('should parse a JSON string collection into a Backbone model collection', function () {
|
||||
var course_title = "Test certificate course title override 2";
|
||||
it('should parse a JSON string collection into a Backbone model collection', function() {
|
||||
var course_title = 'Test certificate course title override 2';
|
||||
var CERTIFICATE_JSON = '[{"course_title": "' + course_title + '", "signatories":"[]"}]';
|
||||
this.collection.parse(CERTIFICATE_JSON);
|
||||
var model = this.collection.at(1);
|
||||
expect(model.get('course_title')).toEqual(course_title);
|
||||
});
|
||||
|
||||
it('should parse a JSON object collection into a Backbone model collection', function () {
|
||||
var course_title = "Test certificate course title override 2";
|
||||
it('should parse a JSON object collection into a Backbone model collection', function() {
|
||||
var course_title = 'Test certificate course title override 2';
|
||||
var CERTIFICATE_JSON_OBJECT = [{
|
||||
"course_title" : course_title,
|
||||
"signatories" : "[]"
|
||||
'course_title': course_title,
|
||||
'signatories': '[]'
|
||||
}];
|
||||
this.collection.parse(CERTIFICATE_JSON_OBJECT);
|
||||
var model = this.collection.at(1);
|
||||
expect(model.get('course_title')).toEqual(course_title);
|
||||
});
|
||||
|
||||
it('should have empty certificate collection if there is an error parsing certifcate JSON', function () {
|
||||
it('should have empty certificate collection if there is an error parsing certifcate JSON', function() {
|
||||
var CERTIFICATE_INVALID_JSON = '[{"course_title": Test certificate course title override, "signatories":"[]"}]'; // eslint-disable-line max-len
|
||||
var collection_length = this.collection.length;
|
||||
this.collection.parse(CERTIFICATE_INVALID_JSON);
|
||||
//collection length should remain the same since we have error parsing JSON
|
||||
// collection length should remain the same since we have error parsing JSON
|
||||
expect(this.collection.length).toEqual(collection_length);
|
||||
});
|
||||
|
||||
it('should display the certificate course title override', function () {
|
||||
it('should display the certificate course title override', function() {
|
||||
expect(this.view.$(SELECTORS.course_title)).toExist();
|
||||
expect(this.view.$(SELECTORS.course_title)).toContainText('Test Course Title Override');
|
||||
});
|
||||
|
||||
it('should present an Edit action', function () {
|
||||
it('should present an Edit action', function() {
|
||||
expect(this.view.$('.edit')).toExist();
|
||||
});
|
||||
|
||||
it('should change to "edit" mode when clicking the Edit button and confirming the prompt', function(){
|
||||
it('should change to "edit" mode when clicking the Edit button and confirming the prompt', function() {
|
||||
expect(this.view.$('.action-edit .edit')).toExist();
|
||||
var promptSpy = ViewHelpers.createPromptSpy();
|
||||
this.view.$('.action-edit .edit').click();
|
||||
@@ -165,67 +164,64 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
expect(this.model.get('editing')).toBe(true);
|
||||
});
|
||||
|
||||
it('should not show confirmation prompt when clicked on "edit" in case of inactive certificate', function(){
|
||||
it('should not show confirmation prompt when clicked on "edit" in case of inactive certificate', function() {
|
||||
this.model.set('is_active', false);
|
||||
expect(this.view.$('.action-edit .edit')).toExist();
|
||||
this.view.$('.action-edit .edit').click();
|
||||
expect(this.model.get('editing')).toBe(true);
|
||||
});
|
||||
|
||||
it('should not present a Edit action if user is not global staff and certificate is active', function () {
|
||||
it('should not present a Edit action if user is not global staff and certificate is active', function() {
|
||||
window.CMS.User = {isGlobalStaff: false};
|
||||
appendSetFixtures(this.view.render().el);
|
||||
expect(this.view.$('.action-edit .edit')).not.toExist();
|
||||
});
|
||||
|
||||
it('should present a Delete action', function () {
|
||||
it('should present a Delete action', function() {
|
||||
expect(this.view.$('.action-delete .delete')).toExist();
|
||||
});
|
||||
|
||||
it('should not present a Delete action if user is not global staff and certificate is active', function () {
|
||||
it('should not present a Delete action if user is not global staff and certificate is active', function() {
|
||||
window.CMS.User = {isGlobalStaff: false};
|
||||
appendSetFixtures(this.view.render().el);
|
||||
expect(this.view.$('.action-delete .delete')).not.toExist();
|
||||
});
|
||||
|
||||
it('should prompt the user when when clicking the Delete button', function(){
|
||||
it('should prompt the user when when clicking the Delete button', function() {
|
||||
expect(this.view.$('.action-delete .delete')).toExist();
|
||||
this.view.$('.action-delete .delete').click();
|
||||
});
|
||||
|
||||
it('should scroll to top after rendering if necessary', function () {
|
||||
it('should scroll to top after rendering if necessary', function() {
|
||||
$.smoothScroll = jasmine.createSpy('jQuery.smoothScroll');
|
||||
appendSetFixtures(this.view.render().el);
|
||||
expect($.smoothScroll).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Signatory details', function(){
|
||||
|
||||
describe('Signatory details', function() {
|
||||
beforeEach(function() {
|
||||
this.view.render();
|
||||
});
|
||||
|
||||
it('displays certificate signatories details', function(){
|
||||
it('displays certificate signatories details', function() {
|
||||
this.view.$('.show-details').click();
|
||||
expect(this.view.$(SELECTORS.signatory_name_value)).toContainText('');
|
||||
expect(this.view.$(SELECTORS.signatory_title_value)).toContainText('');
|
||||
expect(this.view.$(SELECTORS.signatory_organization_value)).toContainText('');
|
||||
});
|
||||
|
||||
it('should present Edit action on signaotry', function () {
|
||||
it('should present Edit action on signaotry', function() {
|
||||
expect(this.view.$(SELECTORS.edit_signatory)).toExist();
|
||||
});
|
||||
|
||||
it('should not present Edit action on signaotry if user is not global staff and certificate is active', function () {
|
||||
it('should not present Edit action on signaotry if user is not global staff and certificate is active', function() {
|
||||
window.CMS.User = {isGlobalStaff: false};
|
||||
this.view.render();
|
||||
expect(this.view.$(SELECTORS.edit_signatory)).not.toExist();
|
||||
});
|
||||
|
||||
it('supports in-line editing of signatory information', function() {
|
||||
|
||||
this.view.$(SELECTORS.edit_signatory).click();
|
||||
expect(this.view.$(SELECTORS.inputSignatoryName)).toExist();
|
||||
expect(this.view.$(SELECTORS.inputSignatoryTitle)).toExist();
|
||||
@@ -233,7 +229,6 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
});
|
||||
|
||||
it('correctly persists changes made during in-line signatory editing', function() {
|
||||
|
||||
var requests = AjaxHelpers.requests(this),
|
||||
notificationSpy = ViewHelpers.createNotificationSpy();
|
||||
|
||||
|
||||
@@ -37,14 +37,14 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
note: '.wrapper-delete-button',
|
||||
addSignatoryButton: '.action-add-signatory',
|
||||
signatoryDeleteButton: '.signatory-panel-delete',
|
||||
uploadSignatureButton:'.action-upload-signature',
|
||||
uploadSignatureButton: '.action-upload-signature',
|
||||
uploadDialog: 'form.upload-dialog',
|
||||
uploadDialogButton: '.action-upload',
|
||||
uploadDialogFileInput: 'form.upload-dialog input[type=file]',
|
||||
saveCertificateButton: 'button.action-primary'
|
||||
};
|
||||
|
||||
var clickDeleteItem = function (that, promptText, element, url) {
|
||||
var clickDeleteItem = function(that, promptText, element, url) {
|
||||
var requests = AjaxHelpers.requests(that),
|
||||
promptSpy = ViewHelpers.createPromptSpy(),
|
||||
notificationSpy = ViewHelpers.createNotificationSpy();
|
||||
@@ -53,7 +53,7 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
ViewHelpers.verifyPromptShowing(promptSpy, promptText);
|
||||
ViewHelpers.confirmPrompt(promptSpy);
|
||||
ViewHelpers.verifyPromptHidden(promptSpy);
|
||||
if (!_.isUndefined(url) && !_.isEmpty(url)){
|
||||
if (!_.isUndefined(url) && !_.isEmpty(url)) {
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', url);
|
||||
expect(_.last(requests).requestHeaders['X-HTTP-Method-Override']).toBe('DELETE');
|
||||
ViewHelpers.verifyNotificationShowing(notificationSpy, /Deleting/);
|
||||
@@ -62,7 +62,7 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
}
|
||||
};
|
||||
|
||||
var showConfirmPromptAndClickCancel = function (view, element, promptText) {
|
||||
var showConfirmPromptAndClickCancel = function(view, element, promptText) {
|
||||
var promptSpy = ViewHelpers.createPromptSpy();
|
||||
view.$(element).click();
|
||||
ViewHelpers.verifyPromptShowing(promptSpy, promptText);
|
||||
@@ -70,15 +70,15 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
ViewHelpers.verifyPromptHidden(promptSpy);
|
||||
};
|
||||
|
||||
var uploadFile = function (file_path, requests){
|
||||
var uploadFile = function(file_path, requests) {
|
||||
$(SELECTORS.uploadDialogFileInput).change();
|
||||
$(SELECTORS.uploadDialogButton).click();
|
||||
AjaxHelpers.respondWithJson(requests, {asset: {url: file_path}});
|
||||
};
|
||||
|
||||
describe('Certificate editor view', function() {
|
||||
var setValuesToInputs = function (view, values) {
|
||||
_.each(values, function (value, selector) {
|
||||
var setValuesToInputs = function(view, values) {
|
||||
_.each(values, function(value, selector) {
|
||||
if (SELECTORS[selector]) {
|
||||
view.$(SELECTORS[selector]).val(value);
|
||||
view.$(SELECTORS[selector]).trigger('change');
|
||||
@@ -86,8 +86,8 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
});
|
||||
};
|
||||
var basicModalTpl = readFixtures('basic-modal.underscore'),
|
||||
modalButtonTpl = readFixtures('modal-button.underscore'),
|
||||
uploadDialogTpl = readFixtures('upload-dialog.underscore');
|
||||
modalButtonTpl = readFixtures('modal-button.underscore'),
|
||||
uploadDialogTpl = readFixtures('upload-dialog.underscore');
|
||||
|
||||
beforeEach(function() {
|
||||
TemplateHelpers.installTemplates(['certificate-editor', 'signatory-editor'], true);
|
||||
@@ -110,8 +110,8 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
|
||||
}, this.newModelOptions);
|
||||
|
||||
this.collection = new CertificatesCollection([ this.model ], {
|
||||
certificateUrl: '/certificates/'+ window.course.id
|
||||
this.collection = new CertificatesCollection([this.model], {
|
||||
certificateUrl: '/certificates/' + window.course.id
|
||||
});
|
||||
this.model.set('id', 0);
|
||||
this.view = new CertificateEditorView({
|
||||
@@ -127,20 +127,20 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
delete window.CMS.User;
|
||||
});
|
||||
|
||||
describe('Basic', function () {
|
||||
beforeEach(function(){
|
||||
describe('Basic', function() {
|
||||
beforeEach(function() {
|
||||
appendSetFixtures(
|
||||
$("<script>", { id: "basic-modal-tpl", type: "text/template" }).text(basicModalTpl)
|
||||
$('<script>', {id: 'basic-modal-tpl', type: 'text/template'}).text(basicModalTpl)
|
||||
);
|
||||
appendSetFixtures(
|
||||
$("<script>", { id: "modal-button-tpl", type: "text/template" }).text(modalButtonTpl)
|
||||
$('<script>', {id: 'modal-button-tpl', type: 'text/template'}).text(modalButtonTpl)
|
||||
);
|
||||
appendSetFixtures(
|
||||
$("<script>", { id: "upload-dialog-tpl", type: "text/template" }).text(uploadDialogTpl)
|
||||
$('<script>', {id: 'upload-dialog-tpl', type: 'text/template'}).text(uploadDialogTpl)
|
||||
);
|
||||
});
|
||||
|
||||
afterEach(function(){
|
||||
afterEach(function() {
|
||||
$('.wrapper-modal-window-assetupload').remove();
|
||||
});
|
||||
|
||||
@@ -198,11 +198,10 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
});
|
||||
|
||||
it('user can only add signatories up to limit', function() {
|
||||
for(var i = 1; i < MAX_SIGNATORIES_LIMIT ; i++) {
|
||||
for (var i = 1; i < MAX_SIGNATORIES_LIMIT; i++) {
|
||||
this.view.$(SELECTORS.addSignatoryButton).click();
|
||||
}
|
||||
expect(this.view.$(SELECTORS.addSignatoryButton)).toHaveClass('disableClick');
|
||||
|
||||
});
|
||||
|
||||
it('user can add signatories if not reached the upper limit', function() {
|
||||
@@ -214,14 +213,14 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
|
||||
it('user can add signatories when signatory reached the upper limit But after deleting a signatory',
|
||||
function() {
|
||||
for(var i = 1; i < MAX_SIGNATORIES_LIMIT ; i++) {
|
||||
for (var i = 1; i < MAX_SIGNATORIES_LIMIT; i++) {
|
||||
this.view.$(SELECTORS.addSignatoryButton).click();
|
||||
}
|
||||
expect(this.view.$(SELECTORS.addSignatoryButton)).toHaveClass('disableClick');
|
||||
|
||||
// now delete anyone of the signatory, Add signatory should be enabled.
|
||||
var signatory = this.model.get('signatories').at(0);
|
||||
var text = 'Delete "'+ signatory.get('name') +'" from the list of signatories?';
|
||||
var text = 'Delete "' + signatory.get('name') + '" from the list of signatories?';
|
||||
clickDeleteItem(this, text, SELECTORS.signatoryDeleteButton + ':first');
|
||||
expect(this.view.$(SELECTORS.addSignatoryButton)).not.toHaveClass('disableClick');
|
||||
}
|
||||
@@ -273,8 +272,8 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
var signatory = this.model.get('signatories').at(0);
|
||||
var signatory_url = '/certificates/signatory';
|
||||
signatory.url = signatory_url;
|
||||
spyOn(signatory, "isNew").and.returnValue(false);
|
||||
var text = 'Delete "'+ signatory.get('name') +'" from the list of signatories?';
|
||||
spyOn(signatory, 'isNew').and.returnValue(false);
|
||||
var text = 'Delete "' + signatory.get('name') + '" from the list of signatories?';
|
||||
clickDeleteItem(this, text, SELECTORS.signatoryDeleteButton + ':first', signatory_url);
|
||||
expect(this.model.get('signatories').length).toEqual(total_signatories - 1);
|
||||
});
|
||||
@@ -282,13 +281,13 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
it('can cancel deletion of signatories', function() {
|
||||
this.view.$(SELECTORS.addSignatoryButton).click();
|
||||
var signatory = this.model.get('signatories').at(0);
|
||||
spyOn(signatory, "isNew").and.returnValue(false);
|
||||
spyOn(signatory, 'isNew').and.returnValue(false);
|
||||
// add one more signatory
|
||||
this.view.$(SELECTORS.addSignatoryButton).click();
|
||||
var total_signatories = this.model.get('signatories').length;
|
||||
var signatory_url = '/certificates/signatory';
|
||||
signatory.url = signatory_url;
|
||||
var text = 'Delete "'+ signatory.get('name') +'" from the list of signatories?';
|
||||
var text = 'Delete "' + signatory.get('name') + '" from the list of signatories?';
|
||||
showConfirmPromptAndClickCancel(this.view, SELECTORS.signatoryDeleteButton + ':first', text);
|
||||
expect(this.model.get('signatories').length).toEqual(total_signatories);
|
||||
});
|
||||
|
||||
@@ -19,8 +19,7 @@ function(_, $, Course, CertificatePreview, TemplateHelpers, ViewHelpers, AjaxHel
|
||||
};
|
||||
|
||||
describe('Certificate Web Preview Spec:', function() {
|
||||
|
||||
var selectDropDownByText = function ( element, value ) {
|
||||
var selectDropDownByText = function(element, value) {
|
||||
if (value) {
|
||||
element.val(value);
|
||||
element.trigger('change');
|
||||
@@ -44,7 +43,7 @@ function(_, $, Course, CertificatePreview, TemplateHelpers, ViewHelpers, AjaxHel
|
||||
el: $('.preview-certificate'),
|
||||
course_modes: ['test1', 'test2', 'test3'],
|
||||
certificate_web_view_url: '/users/1/courses/orgX/009/2016?preview=test1',
|
||||
certificate_activation_handler_url: '/certificates/activation/'+ window.course.id,
|
||||
certificate_activation_handler_url: '/certificates/activation/' + window.course.id,
|
||||
is_active: true
|
||||
});
|
||||
appendSetFixtures(this.view.render().el);
|
||||
@@ -56,14 +55,14 @@ function(_, $, Course, CertificatePreview, TemplateHelpers, ViewHelpers, AjaxHel
|
||||
});
|
||||
|
||||
describe('Certificate preview', function() {
|
||||
it('course mode event should call when user choose a new mode', function () {
|
||||
it('course mode event should call when user choose a new mode', function() {
|
||||
spyOn(this.view, 'courseModeChanged');
|
||||
this.view.delegateEvents();
|
||||
selectDropDownByText(this.view.$(SELECTORS.course_modes), 'test3');
|
||||
expect(this.view.courseModeChanged).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('course mode selection updating the link successfully', function () {
|
||||
it('course mode selection updating the link successfully', function() {
|
||||
selectDropDownByText(this.view.$(SELECTORS.course_modes), 'test1');
|
||||
expect(this.view.$(SELECTORS.preview_certificate).attr('href')).
|
||||
toEqual('/users/1/courses/orgX/009/2016?preview=test1');
|
||||
@@ -77,54 +76,52 @@ function(_, $, Course, CertificatePreview, TemplateHelpers, ViewHelpers, AjaxHel
|
||||
toEqual('/users/1/courses/orgX/009/2016?preview=test3');
|
||||
});
|
||||
|
||||
it('toggle certificate activation event works fine', function () {
|
||||
it('toggle certificate activation event works fine', function() {
|
||||
spyOn(this.view, 'toggleCertificateActivation');
|
||||
this.view.delegateEvents();
|
||||
this.view.$(SELECTORS.activate_certificate).click();
|
||||
expect(this.view.toggleCertificateActivation).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('toggle certificate activation button should not be present if user is not global staff', function () {
|
||||
it('toggle certificate activation button should not be present if user is not global staff', function() {
|
||||
window.CMS.User = {isGlobalStaff: false};
|
||||
appendSetFixtures(this.view.render().el);
|
||||
expect(this.view.$(SELECTORS.activate_certificate)).not.toExist();
|
||||
});
|
||||
|
||||
it('certificate deactivation works fine', function () {
|
||||
it('certificate deactivation works fine', function() {
|
||||
var requests = AjaxHelpers.requests(this),
|
||||
notificationSpy = ViewHelpers.createNotificationSpy();
|
||||
this.view.$(SELECTORS.activate_certificate).click();
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', '/certificates/activation/'+ window.course.id, {
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', '/certificates/activation/' + window.course.id, {
|
||||
is_active: false
|
||||
});
|
||||
ViewHelpers.verifyNotificationShowing(notificationSpy, /Deactivating/);
|
||||
|
||||
});
|
||||
|
||||
it('certificate activation works fine', function () {
|
||||
it('certificate activation works fine', function() {
|
||||
var requests = AjaxHelpers.requests(this),
|
||||
notificationSpy = ViewHelpers.createNotificationSpy();
|
||||
this.view.is_active = false;
|
||||
this.view.$(SELECTORS.activate_certificate).click();
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', '/certificates/activation/'+ window.course.id, {
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', '/certificates/activation/' + window.course.id, {
|
||||
is_active: true
|
||||
});
|
||||
ViewHelpers.verifyNotificationShowing(notificationSpy, /Activating/);
|
||||
|
||||
});
|
||||
|
||||
it('certificate should be deactivate when method "remove" called', function () {
|
||||
it('certificate should be deactivate when method "remove" called', function() {
|
||||
this.view.remove();
|
||||
expect(this.view.is_active).toBe(false);
|
||||
});
|
||||
|
||||
it('certificate web preview should be removed when method "remove" called', function () {
|
||||
it('certificate web preview should be removed when method "remove" called', function() {
|
||||
this.view.remove();
|
||||
expect(this.view.el.innerHTML).toBe('');
|
||||
});
|
||||
|
||||
it('method "show" should call the render function', function () {
|
||||
spyOn(this.view, "render");
|
||||
it('method "show" should call the render function', function() {
|
||||
spyOn(this.view, 'render');
|
||||
this.view.show();
|
||||
expect(this.view.render).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@@ -16,7 +16,7 @@ define([
|
||||
'js/certificates/spec/custom_matchers'
|
||||
],
|
||||
function(_, Course, CertificatesCollection, CertificateModel, CertificateDetailsView, CertificateEditorView,
|
||||
CertificateItemView, CertificatesListView, CertificatePreview, Notification, AjaxHelpers, TemplateHelpers,
|
||||
CertificateItemView, CertificatesListView, CertificatePreview, Notification, AjaxHelpers, TemplateHelpers,
|
||||
CustomMatchers) {
|
||||
'use strict';
|
||||
|
||||
@@ -54,7 +54,7 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
}, {add: true});
|
||||
|
||||
this.collection = new CertificatesCollection([], {
|
||||
certificateUrl: '/certificates/'+ window.course.id
|
||||
certificateUrl: '/certificates/' + window.course.id
|
||||
});
|
||||
this.model.set('id', 0);
|
||||
this.view = new CertificatesListView({
|
||||
@@ -70,7 +70,7 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
delete window.CMS.User;
|
||||
});
|
||||
|
||||
describe('empty template', function () {
|
||||
describe('empty template', function() {
|
||||
it('should be rendered if no certificates', function() {
|
||||
expect(this.view.$(SELECTORS.noContent)).toExist();
|
||||
expect(this.view.$(SELECTORS.noContent)).toContainText(emptyMessage);
|
||||
@@ -99,7 +99,6 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
this.collection.add(this.model);
|
||||
expect(this.view.$(SELECTORS.itemEditView)).toExist();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -21,7 +21,7 @@ function($, _, str, gettext, BaseView, SignatoryModel, SignatoryDetailsView, Vie
|
||||
'click .edit': 'editCertificate'
|
||||
},
|
||||
|
||||
className: function () {
|
||||
className: function() {
|
||||
// Determine the CSS class names for this model instance
|
||||
return [
|
||||
'collection',
|
||||
@@ -40,7 +40,7 @@ function($, _, str, gettext, BaseView, SignatoryModel, SignatoryDetailsView, Vie
|
||||
// Flip the model into 'editing' mode
|
||||
if (event && event.preventDefault) { event.preventDefault(); }
|
||||
var self = this;
|
||||
if (this.model.get("is_active") === true){
|
||||
if (this.model.get('is_active') === true) {
|
||||
ViewUtils.confirmThenRunOperation(
|
||||
gettext('Edit this certificate?'),
|
||||
gettext('This certificate has already been activated and is live. Are you sure you want to continue editing?'),
|
||||
@@ -50,7 +50,7 @@ function($, _, str, gettext, BaseView, SignatoryModel, SignatoryDetailsView, Vie
|
||||
}
|
||||
);
|
||||
}
|
||||
else{
|
||||
else {
|
||||
this.model.set('editing', true);
|
||||
}
|
||||
},
|
||||
@@ -63,15 +63,15 @@ function($, _, str, gettext, BaseView, SignatoryModel, SignatoryDetailsView, Vie
|
||||
showDetails: this.showDetails || showDetails || false
|
||||
});
|
||||
this.$el.html(_.template(certificateDetailsTemplate)(attrs));
|
||||
if(this.showDetails || showDetails) {
|
||||
if (this.showDetails || showDetails) {
|
||||
var self = this;
|
||||
this.model.get("signatories").each(function (modelSignatory) {
|
||||
this.model.get('signatories').each(function(modelSignatory) {
|
||||
var signatory_detail_view = new SignatoryDetailsView({model: modelSignatory});
|
||||
self.$('div.signatory-details-list').append($(signatory_detail_view.render().$el));
|
||||
});
|
||||
}
|
||||
|
||||
if(this.model.collection.length > 0 && window.certWebPreview) {
|
||||
if (this.model.collection.length > 0 && window.certWebPreview) {
|
||||
window.certWebPreview.show();
|
||||
}
|
||||
$.smoothScroll({
|
||||
|
||||
@@ -30,7 +30,7 @@ function($, _, Backbone, gettext,
|
||||
'click .action-add-signatory': 'addSignatory'
|
||||
},
|
||||
|
||||
className: function () {
|
||||
className: function() {
|
||||
// Determine the CSS class names for this model instance
|
||||
var index = this.model.collection.indexOf(this.model);
|
||||
|
||||
@@ -44,12 +44,12 @@ function($, _, Backbone, gettext,
|
||||
|
||||
initialize: function(options) {
|
||||
// Set up the initial state of the attributes set for this model instance
|
||||
_.bindAll(this, "onSignatoryRemoved", "clearErrorMessage");
|
||||
_.bindAll(this, 'onSignatoryRemoved', 'clearErrorMessage');
|
||||
this.max_signatories_limit = options.max_signatories_limit || MAX_SIGNATORIES_LIMIT;
|
||||
this.template = _.template(certificateEditorTemplate);
|
||||
this.eventAgg = _.extend({}, Backbone.Events);
|
||||
this.eventAgg.bind("onSignatoryRemoved", this.onSignatoryRemoved);
|
||||
this.eventAgg.bind("onSignatoryUpdated", this.clearErrorMessage);
|
||||
this.eventAgg.bind('onSignatoryRemoved', this.onSignatoryRemoved);
|
||||
this.eventAgg.bind('onSignatoryUpdated', this.clearErrorMessage);
|
||||
ListItemEditorView.prototype.initialize.call(this);
|
||||
},
|
||||
|
||||
@@ -69,7 +69,7 @@ function($, _, Backbone, gettext,
|
||||
ListItemEditorView.prototype.render.call(this);
|
||||
var self = this;
|
||||
// Ensure we have at least one signatory associated with the certificate.
|
||||
this.model.get("signatories").each(function( modelSignatory) {
|
||||
this.model.get('signatories').each(function(modelSignatory) {
|
||||
var signatory_view = new SignatoryEditorView({
|
||||
model: modelSignatory,
|
||||
isEditingAllCollections: true,
|
||||
@@ -89,8 +89,8 @@ function($, _, Backbone, gettext,
|
||||
|
||||
disableAddSignatoryButton: function() {
|
||||
// Disable the 'Add Signatory' link if the constraint has been met.
|
||||
if(this.$(".signatory-edit-list > div.signatory-edit").length >= this.max_signatories_limit) {
|
||||
this.$(".action-add-signatory").addClass("disableClick");
|
||||
if (this.$('.signatory-edit-list > div.signatory-edit').length >= this.max_signatories_limit) {
|
||||
this.$('.action-add-signatory').addClass('disableClick');
|
||||
}
|
||||
},
|
||||
|
||||
@@ -118,7 +118,7 @@ function($, _, Backbone, gettext,
|
||||
if (event && event.preventDefault) { event.preventDefault(); }
|
||||
this.model.set(
|
||||
'name', this.$('.collection-name-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
},
|
||||
|
||||
@@ -128,7 +128,7 @@ function($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'description',
|
||||
this.$('.certificate-description-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
},
|
||||
|
||||
@@ -138,7 +138,7 @@ function($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'course_title',
|
||||
this.$('.certificate-course-title-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
},
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ define([
|
||||
'js/certificates/views/certificate_details',
|
||||
'js/certificates/views/certificate_editor'
|
||||
],
|
||||
function (gettext, ListItemView, CertificateDetailsView, CertificateEditorView) {
|
||||
function(gettext, ListItemView, CertificateDetailsView, CertificateEditorView) {
|
||||
'use strict';
|
||||
var CertificateItemView = ListItemView.extend({
|
||||
events: {
|
||||
@@ -20,7 +20,7 @@ function (gettext, ListItemView, CertificateDetailsView, CertificateEditorView)
|
||||
// Translators: This field pertains to the custom label for a certificate.
|
||||
itemDisplayName: gettext('certificate'),
|
||||
|
||||
attributes: function () {
|
||||
attributes: function() {
|
||||
// Retrieves the defined attribute set
|
||||
return {
|
||||
'id': this.model.get('id'),
|
||||
|
||||
@@ -8,25 +8,25 @@ define([
|
||||
'js/views/baseview',
|
||||
'common/js/components/utils/view_utils',
|
||||
'common/js/components/views/feedback_notification',
|
||||
"text!templates/certificate-web-preview.underscore"
|
||||
'text!templates/certificate-web-preview.underscore'
|
||||
],
|
||||
function(_, gettext, BaseView, ViewUtils, NotificationView, certificateWebPreviewTemplate) {
|
||||
'use strict';
|
||||
var CertificateWebPreview = BaseView.extend({
|
||||
el: $(".preview-certificate"),
|
||||
el: $('.preview-certificate'),
|
||||
events: {
|
||||
"change #course-modes": "courseModeChanged",
|
||||
"click .activate-cert": "toggleCertificateActivation"
|
||||
'change #course-modes': 'courseModeChanged',
|
||||
'click .activate-cert': 'toggleCertificateActivation'
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
initialize: function(options) {
|
||||
this.course_modes = options.course_modes;
|
||||
this.certificate_web_view_url = options.certificate_web_view_url;
|
||||
this.certificate_activation_handler_url = options.certificate_activation_handler_url;
|
||||
this.is_active = options.is_active;
|
||||
},
|
||||
|
||||
render: function () {
|
||||
render: function() {
|
||||
this.$el.html(_.template(certificateWebPreviewTemplate)({
|
||||
course_modes: this.course_modes,
|
||||
certificate_web_view_url: this.certificate_web_view_url,
|
||||
@@ -36,9 +36,9 @@ function(_, gettext, BaseView, ViewUtils, NotificationView, certificateWebPrevie
|
||||
},
|
||||
|
||||
toggleCertificateActivation: function() {
|
||||
var msg = "Activating";
|
||||
if(this.is_active) {
|
||||
msg = "Deactivating";
|
||||
var msg = 'Activating';
|
||||
if (this.is_active) {
|
||||
msg = 'Deactivating';
|
||||
}
|
||||
|
||||
var notification = new NotificationView.Mini({
|
||||
@@ -47,24 +47,24 @@ function(_, gettext, BaseView, ViewUtils, NotificationView, certificateWebPrevie
|
||||
|
||||
$.ajax({
|
||||
url: this.certificate_activation_handler_url,
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
data: JSON.stringify({
|
||||
is_active: !this.is_active
|
||||
}),
|
||||
beforeSend: function() {
|
||||
notification.show();
|
||||
},
|
||||
success: function(){
|
||||
success: function() {
|
||||
notification.hide();
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
courseModeChanged: function (event) {
|
||||
$('.preview-certificate-link').attr('href', function(index, value){
|
||||
courseModeChanged: function(event) {
|
||||
$('.preview-certificate-link').attr('href', function(index, value) {
|
||||
return value.replace(/preview=([^&]+)/, function() {
|
||||
return 'preview=' + event.target.options[event.target.selectedIndex].text;
|
||||
});
|
||||
|
||||
@@ -5,7 +5,7 @@ define([
|
||||
'js/views/list',
|
||||
'js/certificates/views/certificate_item'
|
||||
],
|
||||
function (gettext, ListView, CertificateItemView) {
|
||||
function(gettext, ListView, CertificateItemView) {
|
||||
'use strict';
|
||||
var CertificatesListView = ListView.extend({
|
||||
tagName: 'div',
|
||||
|
||||
@@ -7,7 +7,7 @@ define([
|
||||
'js/views/pages/base_page',
|
||||
'js/certificates/views/certificates_list'
|
||||
],
|
||||
function ($, _, gettext, BasePage, CertificatesListView) {
|
||||
function($, _, gettext, BasePage, CertificatesListView) {
|
||||
'use strict';
|
||||
var CertificatesPage = BasePage.extend({
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ define([
|
||||
'text!templates/signatory-details.underscore',
|
||||
'text!templates/signatory-actions.underscore'
|
||||
],
|
||||
function ($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, SignatoryEditorView,
|
||||
function($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, SignatoryEditorView,
|
||||
signatoryDetailsTemplate, signatoryActionsTemplate) {
|
||||
'use strict';
|
||||
var SignatoryDetailsView = BaseView.extend({
|
||||
@@ -25,7 +25,7 @@ function ($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, Sign
|
||||
|
||||
},
|
||||
|
||||
className: function () {
|
||||
className: function() {
|
||||
// Determine the CSS class names for this model instance
|
||||
var index = this.model.collection.indexOf(this.model);
|
||||
return [
|
||||
@@ -62,13 +62,13 @@ function ($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, Sign
|
||||
// Persist the data for this model
|
||||
if (event && event.preventDefault) { event.preventDefault(); }
|
||||
var certificate = this.model.get('certificate');
|
||||
if (!certificate.isValid()){
|
||||
if (!certificate.isValid()) {
|
||||
return;
|
||||
}
|
||||
var self = this;
|
||||
ViewUtils.runOperationShowingMessage(
|
||||
gettext('Saving'),
|
||||
function () {
|
||||
function() {
|
||||
var dfd = $.Deferred();
|
||||
var actionableModel = certificate;
|
||||
actionableModel.save({}, {
|
||||
|
||||
@@ -13,7 +13,7 @@ define([
|
||||
'js/views/uploads',
|
||||
'text!templates/signatory-editor.underscore'
|
||||
],
|
||||
function ($, _, Backbone, gettext,
|
||||
function($, _, Backbone, gettext,
|
||||
TemplateUtils, ViewUtils, PromptView, NotificationView, FileUploadModel, FileUploadDialog,
|
||||
signatoryEditorTemplate) {
|
||||
'use strict';
|
||||
@@ -28,7 +28,7 @@ function ($, _, Backbone, gettext,
|
||||
'click .action-upload-signature': 'uploadSignatureImage'
|
||||
},
|
||||
|
||||
className: function () {
|
||||
className: function() {
|
||||
// Determine the CSS class names for this model instance
|
||||
var index = this.getModelIndex(this.model);
|
||||
return [
|
||||
@@ -39,7 +39,7 @@ function ($, _, Backbone, gettext,
|
||||
|
||||
initialize: function(options) {
|
||||
// Set up the initial state of the attributes set for this model instance
|
||||
_.bindAll(this, 'render');
|
||||
_.bindAll(this, 'render');
|
||||
this.model.bind('change', this.render);
|
||||
this.eventAgg = options.eventAgg;
|
||||
this.isEditingAllCollections = options.isEditingAllCollections;
|
||||
@@ -58,8 +58,8 @@ function ($, _, Backbone, gettext,
|
||||
getTotalSignatoriesOnServer: function() {
|
||||
// Retrieve the count of signatories stored server-side
|
||||
var count = 0;
|
||||
this.model.collection.each(function( modelSignatory) {
|
||||
if(!modelSignatory.isNew()) {
|
||||
this.model.collection.each(function(modelSignatory) {
|
||||
if (!modelSignatory.isNew()) {
|
||||
count ++;
|
||||
}
|
||||
});
|
||||
@@ -87,10 +87,10 @@ function ($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'name',
|
||||
this.$('.signatory-name-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
this.toggleValidationErrorMessage('name');
|
||||
this.eventAgg.trigger("onSignatoryUpdated", this.model);
|
||||
this.eventAgg.trigger('onSignatoryUpdated', this.model);
|
||||
},
|
||||
|
||||
setSignatoryTitle: function(event) {
|
||||
@@ -99,10 +99,10 @@ function ($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'title',
|
||||
this.$('.signatory-title-input').val(),
|
||||
{ silent:true }
|
||||
{silent: true}
|
||||
);
|
||||
this.toggleValidationErrorMessage('title');
|
||||
this.eventAgg.trigger("onSignatoryUpdated", this.model);
|
||||
this.eventAgg.trigger('onSignatoryUpdated', this.model);
|
||||
},
|
||||
|
||||
setSignatoryOrganization: function(event) {
|
||||
@@ -111,9 +111,9 @@ function ($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'organization',
|
||||
this.$('.signatory-organization-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
this.eventAgg.trigger("onSignatoryUpdated", this.model);
|
||||
this.eventAgg.trigger('onSignatoryUpdated', this.model);
|
||||
},
|
||||
|
||||
setSignatorySignatureImagePath: function(event) {
|
||||
@@ -121,7 +121,7 @@ function ($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'signature_image_path',
|
||||
this.$('.signatory-signature-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
},
|
||||
|
||||
@@ -137,21 +137,21 @@ function ($, _, Backbone, gettext,
|
||||
actions: {
|
||||
primary: {
|
||||
text: gettext('Delete'),
|
||||
click: function () {
|
||||
click: function() {
|
||||
var deleting = new NotificationView.Mini({
|
||||
title: gettext('Deleting')
|
||||
});
|
||||
if (model.isNew()){
|
||||
if (model.isNew()) {
|
||||
model.collection.remove(model);
|
||||
self.eventAgg.trigger("onSignatoryRemoved", model);
|
||||
self.eventAgg.trigger('onSignatoryRemoved', model);
|
||||
}
|
||||
else {
|
||||
deleting.show();
|
||||
model.destroy({
|
||||
wait: true,
|
||||
success: function (model) {
|
||||
success: function(model) {
|
||||
deleting.hide();
|
||||
self.eventAgg.trigger("onSignatoryRemoved", model);
|
||||
self.eventAgg.trigger('onSignatoryRemoved', model);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -172,8 +172,8 @@ function ($, _, Backbone, gettext,
|
||||
uploadSignatureImage: function(event) {
|
||||
event.preventDefault();
|
||||
var upload = new FileUploadModel({
|
||||
title: gettext("Upload signature image."),
|
||||
message: gettext("Image must be in PNG format."),
|
||||
title: gettext('Upload signature image.'),
|
||||
message: gettext('Image must be in PNG format.'),
|
||||
mimeTypes: ['image/png']
|
||||
});
|
||||
var self = this;
|
||||
@@ -192,20 +192,19 @@ function ($, _, Backbone, gettext,
|
||||
* @param string modelAttribute - the attribute of the signatory model e.g. name, title.
|
||||
*/
|
||||
toggleValidationErrorMessage: function(modelAttribute) {
|
||||
var selector = "div.add-signatory-" + modelAttribute;
|
||||
var selector = 'div.add-signatory-' + modelAttribute;
|
||||
if (!this.model.isValid() && _.has(this.model.validationError, modelAttribute)) {
|
||||
|
||||
// Show the error message if it is not exist before.
|
||||
if( !$(selector).hasClass('error')) {
|
||||
if (!$(selector).hasClass('error')) {
|
||||
var errorMessage = this.model.validationError[modelAttribute];
|
||||
$(selector).addClass("error");
|
||||
$(selector).append("<span class='message-error'>" + errorMessage + "</span>");
|
||||
$(selector).addClass('error');
|
||||
$(selector).append("<span class='message-error'>" + errorMessage + '</span>');
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Remove the error message.
|
||||
$(selector).removeClass("error");
|
||||
$(selector + ">span.message-error").remove();
|
||||
$(selector).removeClass('error');
|
||||
$(selector + '>span.message-error').remove();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
define([
|
||||
"underscore",
|
||||
"edx-ui-toolkit/js/pagination/paging-collection",
|
||||
"js/models/asset"
|
||||
'underscore',
|
||||
'edx-ui-toolkit/js/pagination/paging-collection',
|
||||
'js/models/asset'
|
||||
], function(_, PagingCollection, AssetModel) {
|
||||
'use strict';
|
||||
|
||||
var AssetCollection = PagingCollection.extend({
|
||||
assetType: '',
|
||||
model : AssetModel,
|
||||
model: AssetModel,
|
||||
|
||||
state: {
|
||||
firstPage: 0,
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
define(["backbone", "js/models/chapter"], function(Backbone, ChapterModel) {
|
||||
define(['backbone', 'js/models/chapter'], function(Backbone, ChapterModel) {
|
||||
var ChapterCollection = Backbone.Collection.extend({
|
||||
model: ChapterModel,
|
||||
comparator: "order",
|
||||
comparator: 'order',
|
||||
nextOrder: function() {
|
||||
if(!this.length) return 1;
|
||||
if (!this.length) return 1;
|
||||
return this.last().get('order') + 1;
|
||||
},
|
||||
isEmpty: function() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
define(["backbone", "js/models/component_template"], function(Backbone, ComponentTemplate) {
|
||||
define(['backbone', 'js/models/component_template'], function(Backbone, ComponentTemplate) {
|
||||
return Backbone.Collection.extend({
|
||||
model : ComponentTemplate
|
||||
model: ComponentTemplate
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
define(["backbone", "js/models/settings/course_grader"], function(Backbone, CourseGrader) {
|
||||
define(['backbone', 'js/models/settings/course_grader'], function(Backbone, CourseGrader) {
|
||||
var CourseGraderCollection = Backbone.Collection.extend({
|
||||
model: CourseGrader,
|
||||
sumWeights: function() {
|
||||
return this.reduce(function(subtotal, grader) { return subtotal + grader.get('weight'); }, 0);
|
||||
}
|
||||
});
|
||||
|
||||
var CourseGraderCollection = Backbone.Collection.extend({
|
||||
model : CourseGrader,
|
||||
sumWeights : function() {
|
||||
return this.reduce(function(subtotal, grader) { return subtotal + grader.get('weight'); }, 0);
|
||||
}
|
||||
});
|
||||
|
||||
return CourseGraderCollection;
|
||||
return CourseGraderCollection;
|
||||
}); // end define()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
define(["backbone", "js/models/course_update"], function(Backbone, CourseUpdateModel) {
|
||||
define(['backbone', 'js/models/course_update'], function(Backbone, CourseUpdateModel) {
|
||||
/*
|
||||
The intitializer of this collection must set id to the update's location.url and courseLocation to the course's location. Must pass the
|
||||
collection of updates as [{ date : "month day", content : "html"}]
|
||||
@@ -6,7 +6,7 @@ define(["backbone", "js/models/course_update"], function(Backbone, CourseUpdateM
|
||||
var CourseUpdateCollection = Backbone.Collection.extend({
|
||||
// instantiator must set url
|
||||
|
||||
model : CourseUpdateModel
|
||||
model: CourseUpdateModel
|
||||
});
|
||||
return CourseUpdateCollection;
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
define([
|
||||
'underscore', 'underscore.string', 'backbone', 'gettext', 'js/models/group'
|
||||
],
|
||||
function (_, str, Backbone, gettext, GroupModel) {
|
||||
function(_, str, Backbone, gettext, GroupModel) {
|
||||
'use strict';
|
||||
var GroupCollection = Backbone.Collection.extend({
|
||||
model: GroupModel,
|
||||
@@ -11,7 +11,7 @@ function (_, str, Backbone, gettext, GroupModel) {
|
||||
* @return {Number}
|
||||
*/
|
||||
nextOrder: function() {
|
||||
if(!this.length) {
|
||||
if (!this.length) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ function (_, str, Backbone, gettext, GroupModel) {
|
||||
* @examples
|
||||
* Group A, Group B, Group AA, Group ZZZ etc.
|
||||
*/
|
||||
getNextDefaultGroupName: function () {
|
||||
getNextDefaultGroupName: function() {
|
||||
var index = this.nextOrder(),
|
||||
usedNames = _.pluck(this.toJSON(), 'name'),
|
||||
name = '';
|
||||
@@ -53,7 +53,7 @@ function (_, str, Backbone, gettext, GroupModel) {
|
||||
* @examples
|
||||
* A, B, AA in Group A, Group B, ..., Group AA, etc.
|
||||
*/
|
||||
getGroupId: (function () {
|
||||
getGroupId: (function() {
|
||||
/*
|
||||
Translators: Dictionary used for creation ids that are used in
|
||||
default group names. For example: A, B, AA in Group A,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
define(["backbone", "js/models/metadata"], function(Backbone, MetadataModel) {
|
||||
define(['backbone', 'js/models/metadata'], function(Backbone, MetadataModel) {
|
||||
var MetadataCollection = Backbone.Collection.extend({
|
||||
model : MetadataModel,
|
||||
comparator: "display_name"
|
||||
model: MetadataModel,
|
||||
comparator: 'display_name'
|
||||
});
|
||||
return MetadataCollection;
|
||||
});
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
define(["backbone", "js/models/textbook"],
|
||||
define(['backbone', 'js/models/textbook'],
|
||||
function(Backbone, TextbookModel) {
|
||||
var TextbookCollection = Backbone.Collection.extend({
|
||||
model: TextbookModel,
|
||||
url: function() { return CMS.URL.TEXTBOOKS; }
|
||||
});
|
||||
return TextbookCollection;
|
||||
});
|
||||
var TextbookCollection = Backbone.Collection.extend({
|
||||
model: TextbookModel,
|
||||
url: function() { return CMS.URL.TEXTBOOKS; }
|
||||
});
|
||||
return TextbookCollection;
|
||||
});
|
||||
|
||||
@@ -2,17 +2,17 @@ define([
|
||||
'jquery', 'js/collections/asset', 'js/views/assets', 'jquery.fileupload'
|
||||
], function($, AssetCollection, AssetsView) {
|
||||
'use strict';
|
||||
return function (config) {
|
||||
return function(config) {
|
||||
var assets = new AssetCollection(),
|
||||
assetsView;
|
||||
|
||||
assets.url = config.assetCallbackUrl;
|
||||
assetsView = new AssetsView({
|
||||
collection: assets,
|
||||
el: $('.wrapper-assets'),
|
||||
uploadChunkSizeInMBs: config.uploadChunkSizeInMBs,
|
||||
maxFileSizeInMBs: config.maxFileSizeInMBs,
|
||||
maxFileSizeRedirectUrl: config.maxFileSizeRedirectUrl
|
||||
collection: assets,
|
||||
el: $('.wrapper-assets'),
|
||||
uploadChunkSizeInMBs: config.uploadChunkSizeInMBs,
|
||||
maxFileSizeInMBs: config.maxFileSizeInMBs,
|
||||
maxFileSizeRedirectUrl: config.maxFileSizeRedirectUrl
|
||||
});
|
||||
assetsView.render();
|
||||
};
|
||||
|
||||
@@ -5,7 +5,7 @@ define([
|
||||
],
|
||||
function($, _, XBlockContainerInfo, ContainerPage, ComponentTemplates, xmoduleLoader) {
|
||||
'use strict';
|
||||
return function (componentTemplates, XBlockInfoJson, action, options) {
|
||||
return function(componentTemplates, XBlockInfoJson, action, options) {
|
||||
var main_options = {
|
||||
el: $('#content'),
|
||||
model: new XBlockContainerInfo(XBlockInfoJson, {parse: true}),
|
||||
@@ -13,7 +13,7 @@ function($, _, XBlockContainerInfo, ContainerPage, ComponentTemplates, xmoduleLo
|
||||
templates: new ComponentTemplates(componentTemplates, {parse: true})
|
||||
};
|
||||
|
||||
xmoduleLoader.done(function () {
|
||||
xmoduleLoader.done(function() {
|
||||
var view = new ContainerPage(_.extend(main_options, options));
|
||||
view.render();
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
define(['jquery', 'jquery.form', 'js/views/course_rerun'], function ($) {
|
||||
define(['jquery', 'jquery.form', 'js/views/course_rerun'], function($) {
|
||||
'use strict';
|
||||
return function () {};
|
||||
return function() {};
|
||||
});
|
||||
|
||||
@@ -3,7 +3,7 @@ define([
|
||||
'js/models/course_info', 'js/views/course_info_edit'
|
||||
], function($, CourseUpdateCollection, ModuleInfoModel, CourseInfoModel, CourseInfoEditView) {
|
||||
'use strict';
|
||||
return function (updatesUrl, handoutsLocator, baseAssetUrl, push_notification_enabled) {
|
||||
return function(updatesUrl, handoutsLocator, baseAssetUrl, push_notification_enabled) {
|
||||
var course_updates = new CourseUpdateCollection(),
|
||||
course_handouts, editor;
|
||||
|
||||
@@ -14,10 +14,10 @@ define([
|
||||
});
|
||||
editor = new CourseInfoEditView({
|
||||
el: $('.main-wrapper'),
|
||||
model : new CourseInfoModel({
|
||||
updates : course_updates,
|
||||
base_asset_url : baseAssetUrl,
|
||||
handouts : course_handouts
|
||||
model: new CourseInfoModel({
|
||||
updates: course_updates,
|
||||
base_asset_url: baseAssetUrl,
|
||||
handouts: course_handouts
|
||||
}),
|
||||
push_notification_enabled: push_notification_enabled
|
||||
});
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
define([
|
||||
'js/models/explicit_url', 'js/views/tabs', 'xmodule', 'cms/js/main', 'xblock/cms.runtime.v1'
|
||||
], function (TabsModel, TabsEditView, xmoduleLoader) {
|
||||
], function(TabsModel, TabsEditView, xmoduleLoader) {
|
||||
'use strict';
|
||||
return function (courseLocation, explicitUrl) {
|
||||
xmoduleLoader.done(function () {
|
||||
return function(courseLocation, explicitUrl) {
|
||||
xmoduleLoader.done(function() {
|
||||
var model = new TabsModel({
|
||||
id: courseLocation,
|
||||
explicit_url: explicitUrl
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
define(['gettext', 'common/js/components/views/feedback_prompt'], function(gettext, PromptView) {
|
||||
'use strict';
|
||||
return function (hasUnit, editUnitUrl, courselikeHomeUrl, library, errMsg) {
|
||||
return function(hasUnit, editUnitUrl, courselikeHomeUrl, library, errMsg) {
|
||||
var dialog;
|
||||
if(hasUnit) {
|
||||
if (hasUnit) {
|
||||
dialog = new PromptView({
|
||||
title: gettext('There has been an error while exporting.'),
|
||||
message: gettext('There has been a failure to export to XML at least one component. It is recommended that you go to the edit page and repair the error before attempting another export. Please check that all components on the page are valid and do not display any error messages.'),
|
||||
@@ -28,10 +28,10 @@ define(['gettext', 'common/js/components/views/feedback_prompt'], function(gette
|
||||
var action;
|
||||
if (library) {
|
||||
msg += gettext('Your library could not be exported to XML. There is not enough information to identify the failed component. Inspect your library to identify any problematic components and try again.');
|
||||
action = gettext('Take me to the main library page')
|
||||
action = gettext('Take me to the main library page');
|
||||
} else {
|
||||
msg += gettext('Your course could not be exported to XML. There is not enough information to identify the failed component. Inspect your course to identify any problematic components and try again.');
|
||||
action = gettext('Take me to the main course page')
|
||||
action = gettext('Take me to the main course page');
|
||||
}
|
||||
msg += '</p><p>' + gettext('The raw error message is:') + '</p>' + errMsg;
|
||||
dialog = new PromptView({
|
||||
@@ -49,7 +49,7 @@ define(['gettext', 'common/js/components/views/feedback_prompt'], function(gette
|
||||
secondary: {
|
||||
text: gettext('Cancel'),
|
||||
click: function(view) {
|
||||
view.hide();
|
||||
view.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'js/collections/group_configuration', 'js/models/group_configuration', 'js/views/pages/group_configurations'
|
||||
], function(GroupConfigurationCollection, GroupConfigurationModel, GroupConfigurationsPage) {
|
||||
'use strict';
|
||||
return function (experimentsEnabled, experimentGroupConfigurationsJson, contentGroupConfigurationJson,
|
||||
return function(experimentsEnabled, experimentGroupConfigurationsJson, contentGroupConfigurationJson,
|
||||
groupConfigurationUrl, courseOutlineUrl) {
|
||||
var experimentGroupConfigurations = new GroupConfigurationCollection(
|
||||
experimentGroupConfigurationsJson, {parse: true}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
define([
|
||||
'domReady', 'js/views/import', 'jquery', 'gettext', 'jquery.fileupload', 'jquery.cookie'
|
||||
], function(domReady, Import, $, gettext) {
|
||||
|
||||
'use strict';
|
||||
|
||||
return function (feedbackUrl, library) {
|
||||
return function(feedbackUrl, library) {
|
||||
var dbError;
|
||||
|
||||
if (library) {
|
||||
@@ -27,14 +26,14 @@ define([
|
||||
previousImport = Import.storedImport(),
|
||||
file;
|
||||
|
||||
var onComplete = function () {
|
||||
var onComplete = function() {
|
||||
bar.hide();
|
||||
chooseBtn
|
||||
.find('.copy').html(gettext("Choose new file")).end()
|
||||
.find('.copy').html(gettext('Choose new file')).end()
|
||||
.show();
|
||||
}
|
||||
};
|
||||
|
||||
$(window).on('beforeunload', function (event) { unloading = true; });
|
||||
$(window).on('beforeunload', function(event) { unloading = true; });
|
||||
|
||||
// Display the status of last file upload on page load
|
||||
if (previousImport) {
|
||||
@@ -70,11 +69,11 @@ define([
|
||||
).then(onComplete);
|
||||
|
||||
submitBtn.hide();
|
||||
data.submit().complete(function (result, textStatus, xhr) {
|
||||
data.submit().complete(function(result, textStatus, xhr) {
|
||||
if (xhr.status !== 200) {
|
||||
var serverMsg, errMsg, stage;
|
||||
|
||||
try{
|
||||
try {
|
||||
serverMsg = $.parseJSON(result.responseText) || {};
|
||||
} catch (e) {
|
||||
return;
|
||||
@@ -104,7 +103,7 @@ define([
|
||||
}
|
||||
},
|
||||
|
||||
progressall: function(e, data){
|
||||
progressall: function(e, data) {
|
||||
var percentInt = data.loaded / data.total * 100,
|
||||
percentVal = parseInt(percentInt, 10) + '%',
|
||||
doneAt;
|
||||
@@ -121,7 +120,7 @@ define([
|
||||
|
||||
// Start feedback with delay so that current stage of
|
||||
// import properly updates in session
|
||||
setTimeout(function () { Import.pollStatus(); }, 3000);
|
||||
setTimeout(function() { Import.pollStatus(); }, 3000);
|
||||
} else {
|
||||
bar.show();
|
||||
fill.width(percentVal).html(percentVal);
|
||||
@@ -132,7 +131,7 @@ define([
|
||||
});
|
||||
|
||||
|
||||
var showImportSubmit = function (e) {
|
||||
var showImportSubmit = function(e) {
|
||||
var filepath = $(this).val();
|
||||
|
||||
if (filepath.substr(filepath.length - 6, 6) === 'tar.gz') {
|
||||
@@ -150,10 +149,10 @@ define([
|
||||
}
|
||||
};
|
||||
|
||||
domReady(function () {
|
||||
domReady(function() {
|
||||
// import form setup
|
||||
$('.view-import .file-input').bind('change', showImportSubmit);
|
||||
$('.view-import .choose-file-button, .view-import .choose-file-button-inline').bind('click', function (e) {
|
||||
$('.view-import .choose-file-button, .view-import .choose-file-button-inline').bind('click', function(e) {
|
||||
e.preventDefault();
|
||||
$('.view-import .file-input').click();
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
define(['jquery.form', 'js/index'], function() {
|
||||
'use strict';
|
||||
return function () {
|
||||
return function() {
|
||||
// showing/hiding creation rights UI
|
||||
$('.show-creationrights').click(function(e) {
|
||||
e.preventDefault();
|
||||
@@ -11,11 +11,11 @@ define(['jquery.form', 'js/index'], function() {
|
||||
.toggleClass('current');
|
||||
});
|
||||
|
||||
var reloadPage = function () {
|
||||
var reloadPage = function() {
|
||||
location.reload();
|
||||
};
|
||||
|
||||
var showError = function () {
|
||||
var showError = function() {
|
||||
$('#request-coursecreator-submit')
|
||||
.toggleClass('has-error')
|
||||
.find('.label')
|
||||
@@ -30,7 +30,7 @@ define(['jquery.form', 'js/index'], function() {
|
||||
success: reloadPage
|
||||
});
|
||||
|
||||
$('#request-coursecreator-submit').click(function(event){
|
||||
$('#request-coursecreator-submit').click(function(event) {
|
||||
$(this)
|
||||
.toggleClass('is-disabled is-submitting')
|
||||
.attr('aria-disabled', $(this).hasClass('is-disabled'))
|
||||
|
||||
@@ -5,7 +5,7 @@ define([
|
||||
],
|
||||
function($, _, XBlockInfo, PagedContainerPage, LibraryContainerView, ComponentTemplates, xmoduleLoader) {
|
||||
'use strict';
|
||||
return function (componentTemplates, XBlockInfoJson, options) {
|
||||
return function(componentTemplates, XBlockInfoJson, options) {
|
||||
var main_options = {
|
||||
el: $('#content'),
|
||||
model: new XBlockInfo(XBlockInfoJson, {parse: true}),
|
||||
@@ -15,7 +15,7 @@ function($, _, XBlockInfo, PagedContainerPage, LibraryContainerView, ComponentTe
|
||||
canEdit: true
|
||||
};
|
||||
|
||||
xmoduleLoader.done(function () {
|
||||
xmoduleLoader.done(function() {
|
||||
var view = new PagedContainerPage(_.extend(main_options, options));
|
||||
view.render();
|
||||
});
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
define(['jquery.cookie', 'utility', 'common/js/components/utils/view_utils'], function(cookie, utility, ViewUtils) {
|
||||
'use strict';
|
||||
return function (homepageURL) {
|
||||
return function(homepageURL) {
|
||||
function postJSON(url, data, callback) {
|
||||
$.ajax({
|
||||
type:'POST',
|
||||
type: 'POST',
|
||||
url: url,
|
||||
dataType: 'json',
|
||||
data: data,
|
||||
success: callback,
|
||||
success: callback
|
||||
});
|
||||
}
|
||||
|
||||
// Clear the login error message when credentials are edited
|
||||
$('input#email').on('input',function() {
|
||||
$('input#email').on('input', function() {
|
||||
$('#login_error').removeClass('is-shown');
|
||||
});
|
||||
|
||||
$('input#password').on('input',function() {
|
||||
$('input#password').on('input', function() {
|
||||
$('#login_error').removeClass('is-shown');
|
||||
});
|
||||
|
||||
@@ -29,14 +29,14 @@ define(['jquery.cookie', 'utility', 'common/js/components/utils/view_utils'], fu
|
||||
var submit_data = $('#login_form').serialize();
|
||||
|
||||
postJSON('/login_post', submit_data, function(json) {
|
||||
if(json.success) {
|
||||
if (json.success) {
|
||||
var next = /next=([^&]*)/g.exec(decodeURIComponent(window.location.search));
|
||||
if (next && next.length > 1 && !isExternal(next[1])) {
|
||||
ViewUtils.redirect(next[1]);
|
||||
} else {
|
||||
ViewUtils.redirect(homepageURL);
|
||||
}
|
||||
} else if($('#login_error').length === 0) {
|
||||
} else if ($('#login_error').length === 0) {
|
||||
$('#login_form').prepend(
|
||||
'<div id="login_error" class="message message-status error">' +
|
||||
json.value +
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
define(['underscore', 'gettext', 'js/views/manage_users_and_roles'],
|
||||
function(_, gettext, ManageUsersAndRoles) {
|
||||
'use strict';
|
||||
return function (containerName, users, tplUserURL, current_user_id, allow_actions) {
|
||||
return function(containerName, users, tplUserURL, current_user_id, allow_actions) {
|
||||
function updateMessages(messages) {
|
||||
var local_messages = _.extend({}, messages);
|
||||
local_messages.alreadyMember.title = gettext('Already a course team member');
|
||||
@@ -16,10 +16,10 @@ function(_, gettext, ManageUsersAndRoles) {
|
||||
// Roles order are important: first role is considered initial role (the role added to user when (s)he's added
|
||||
// Last role is considered an admin role (unrestricted access + ability to manage other users' permissions)
|
||||
// Changing roles is performed in promote-demote fashion, so moves only to adjacent roles is allowed
|
||||
var roles = [{key:'staff', name:gettext('Staff')}, {key:'instructor', 'name': gettext("Admin")}];
|
||||
var roles = [{key: 'staff', name: gettext('Staff')}, {key: 'instructor', 'name': gettext('Admin')}];
|
||||
|
||||
var options = {
|
||||
el: $("#content"),
|
||||
el: $('#content'),
|
||||
containerName: containerName,
|
||||
tplUserURL: tplUserURL,
|
||||
roles: roles,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
define(['underscore', 'gettext', 'js/views/manage_users_and_roles'],
|
||||
function(_, gettext, ManageUsersAndRoles) {
|
||||
'use strict';
|
||||
return function (containerName, users, tplUserURL, current_user_id, allow_actions) {
|
||||
return function(containerName, users, tplUserURL, current_user_id, allow_actions) {
|
||||
function updateMessages(messages) {
|
||||
var local_messages = _.extend({}, messages);
|
||||
local_messages.alreadyMember.title = gettext('Already a library team member');
|
||||
@@ -17,13 +17,13 @@ function(_, gettext, ManageUsersAndRoles) {
|
||||
// Last role is considered an admin role (unrestricted access + ability to manage other users' permissions)
|
||||
// Changing roles is performed in promote-demote fashion, so moves only to adjacent roles is allowed
|
||||
var roles = [
|
||||
{key:'library_user', name:gettext('Library User')},
|
||||
{key:'staff', name:gettext('Staff')},
|
||||
{key:'instructor', 'name': gettext("Admin")}
|
||||
{key: 'library_user', name: gettext('Library User')},
|
||||
{key: 'staff', name: gettext('Staff')},
|
||||
{key: 'instructor', 'name': gettext('Admin')}
|
||||
];
|
||||
|
||||
var options = {
|
||||
el: $("#content"),
|
||||
el: $('#content'),
|
||||
containerName: containerName,
|
||||
tplUserURL: tplUserURL,
|
||||
roles: roles,
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'js/views/pages/course_outline', 'js/models/xblock_outline_info'
|
||||
], function(CourseOutlinePage, XBlockOutlineInfo) {
|
||||
'use strict';
|
||||
return function (XBlockOutlineInfoJson, initialStateJson) {
|
||||
return function(XBlockOutlineInfoJson, initialStateJson) {
|
||||
var courseXBlock = new XBlockOutlineInfo(XBlockOutlineInfoJson, {parse: true}),
|
||||
view = new CourseOutlinePage({
|
||||
el: $('#content'),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
define(['jquery', 'jquery.cookie'], function($) {
|
||||
'use strict';
|
||||
return function () {
|
||||
return function() {
|
||||
$('form :input')
|
||||
.focus(function() {
|
||||
$('label[for="' + this.id + '"]').addClass('is-focused');
|
||||
@@ -21,11 +21,11 @@ define(['jquery', 'jquery.cookie'], function($) {
|
||||
notifyOnError: false,
|
||||
data: submit_data,
|
||||
success: function(json) {
|
||||
location.href = '/course/';
|
||||
location.href = '/course/';
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
var json = $.parseJSON(jqXHR.responseText);
|
||||
$('#register_error').html(json.value).stop().addClass('is-shown');
|
||||
var json = $.parseJSON(jqXHR.responseText);
|
||||
$('#register_error').html(json.value).stop().addClass('is-shown');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'jquery', 'js/models/settings/course_details', 'js/views/settings/main'
|
||||
], function($, CourseDetailsModel, MainView) {
|
||||
'use strict';
|
||||
return function (detailsUrl, showMinGradeWarning) {
|
||||
return function(detailsUrl, showMinGradeWarning) {
|
||||
var model;
|
||||
// highlighting labels when fields are focused in
|
||||
$('form :input')
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'jquery', 'gettext', 'js/models/settings/advanced', 'js/views/settings/advanced'
|
||||
], function($, gettext, AdvancedSettingsModel, AdvancedSettingsView) {
|
||||
'use strict';
|
||||
return function (advancedDict, advancedSettingsUrl) {
|
||||
return function(advancedDict, advancedSettingsUrl) {
|
||||
var advancedModel, editor;
|
||||
|
||||
$('form :input')
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'jquery', 'js/views/settings/grading', 'js/models/settings/course_grading_policy'
|
||||
], function($, GradingView, CourseGradingPolicyModel) {
|
||||
'use strict';
|
||||
return function (courseDetails, gradingUrl) {
|
||||
return function(courseDetails, gradingUrl) {
|
||||
var model, editor;
|
||||
|
||||
$('form :input')
|
||||
@@ -13,11 +13,11 @@ define([
|
||||
$('label').removeClass('is-focused');
|
||||
});
|
||||
|
||||
model = new CourseGradingPolicyModel(courseDetails,{parse:true});
|
||||
model = new CourseGradingPolicyModel(courseDetails, {parse: true});
|
||||
model.urlRoot = gradingUrl;
|
||||
editor = new GradingView({
|
||||
el: $('.settings-grading'),
|
||||
model : model
|
||||
model: model
|
||||
});
|
||||
editor.render();
|
||||
};
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'gettext', 'js/models/section', 'js/collections/textbook', 'js/views/list_textbooks'
|
||||
], function(gettext, Section, TextbookCollection, ListTextbooksView) {
|
||||
'use strict';
|
||||
return function (textbooksJson) {
|
||||
return function(textbooksJson) {
|
||||
var textbooks = new TextbookCollection(textbooksJson, {parse: true}),
|
||||
tbView = new ListTextbooksView({collection: textbooks});
|
||||
|
||||
@@ -12,7 +12,7 @@ define([
|
||||
});
|
||||
$(window).on('beforeunload', function() {
|
||||
var dirty = textbooks.find(function(textbook) { return textbook.isDirty(); });
|
||||
if(dirty) {
|
||||
if (dirty) {
|
||||
return gettext('You have unsaved changes. Do you really want to leave this page?');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
define(
|
||||
["jquery", "backbone", "js/views/active_video_upload_list", "js/views/previous_video_upload_list"],
|
||||
function ($, Backbone, ActiveVideoUploadListView, PreviousVideoUploadListView) {
|
||||
"use strict";
|
||||
['jquery', 'backbone', 'js/views/active_video_upload_list', 'js/views/previous_video_upload_list'],
|
||||
function($, Backbone, ActiveVideoUploadListView, PreviousVideoUploadListView) {
|
||||
'use strict';
|
||||
var VideosIndexFactory = function(
|
||||
$contentWrapper,
|
||||
postUrl,
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
define(["js/views/xblock_validation", "js/models/xblock_validation"],
|
||||
function (XBlockValidationView, XBlockValidationModel) {
|
||||
define(['js/views/xblock_validation', 'js/models/xblock_validation'],
|
||||
function(XBlockValidationView, XBlockValidationModel) {
|
||||
'use strict';
|
||||
return function (validationMessages, hasEditingUrl, isRoot, validationEle) {
|
||||
return function(validationMessages, hasEditingUrl, isRoot, validationEle) {
|
||||
if (hasEditingUrl && !isRoot) {
|
||||
validationMessages.showSummaryOnly = true;
|
||||
}
|
||||
|
||||
var model = new XBlockValidationModel(validationMessages, {parse: true});
|
||||
|
||||
if (!model.get("empty")) {
|
||||
if (!model.get('empty')) {
|
||||
new XBlockValidationView({el: validationEle, model: model, root: isRoot}).render();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"\u0648\u064f\u062c\u0650\u062f\u064e\u062a %(errorCount)s \u0623\u062e\u0637\u0627\u0621 \u0641\u064a \u0627\u0644\u0646\u0645\u0648\u0630\u062c."
|
||||
],
|
||||
"%(field)s can only contain up to %(count)d characters.": "\u064a\u062c\u0628 \u0623\u0644\u0627 \u064a\u062a\u062c\u0627\u0648\u0632 \u0639\u062f\u062f \u0623\u062d\u0631\u0641 \u0627\u0644\u062d\u0642\u0648\u0644 %(field)s \u0627\u0644\u0640 %(count)d \u062d\u0631\u0641\u064b\u0627.",
|
||||
"%(field)s must have at least %(count)d characters.": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u0648\u064a \u0627\u0644\u062d\u0642\u0648\u0644 %(field)s \u0639\u0644\u0649 %(count)d \u062d\u0631\u0641\u064b\u0627 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644",
|
||||
"%(field)s must have at least %(count)d characters.": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u0648\u064a \u0627\u0644\u062d\u0642\u0644 %(field)s \u0639\u0644\u0649 %(count)d \u062d\u0631\u0641 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644.",
|
||||
"%(memberCount)s / %(maxMemberCount)s Member": [
|
||||
"%(memberCount)s / %(maxMemberCount)s \u0639\u0636\u0648",
|
||||
"%(memberCount)s / %(maxMemberCount)s \u0639\u0636\u0648",
|
||||
@@ -755,8 +755,6 @@
|
||||
"Explain if other.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u0628\u064a\u0627\u0646 \u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644 \u0641\u064a \u062d\u0627\u0644 \u0627\u062e\u062a\u064a\u0627\u0631 \u2019\u0623\u0633\u0628\u0627\u0628 \u0623\u062e\u0631\u0649\u2018",
|
||||
"Explanation": "\u0627\u0644\u0625\u064a\u0636\u0627\u062d",
|
||||
"Explicitly Hiding from Students": "\u0625\u062e\u0641\u0627\u0621 \u0648\u0627\u0636\u062d \u0639\u0646 \u0627\u0644\u0637\u0644\u0651\u0627\u0628",
|
||||
"Explore New XSeries": "\u0627\u0633\u062a\u0643\u0634\u0641 \u062c\u062f\u064a\u062f XSeries",
|
||||
"Explore XSeries Programs": "\u0627\u0633\u062a\u0643\u0634\u0641 \u0628\u0631\u0627\u0645\u062c XSeries",
|
||||
"Explore your course!": "\u0627\u0633\u062a\u0643\u0634\u0641 \u0645\u0633\u0627\u0642\u0643!",
|
||||
"Failed to delete student state.": "\u0646\u0623\u0633\u0641 \u0644\u062a\u0639\u0630\u0651\u0631 \u0625\u062c\u0631\u0627\u0621 \u0639\u0645\u0644\u064a\u0629 \u062d\u0630\u0641 \u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0627\u0644\u0628.",
|
||||
"Failed to rescore problem.": "\u0646\u0623\u0633\u0641 \u0644\u062a\u0639\u0630\u0651\u0631 \u0625\u062c\u0631\u0627\u0621 \u0639\u0645\u0644\u064a\u0629 \u0625\u0639\u0627\u062f\u0629 \u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u0645\u0633\u0623\u0644\u0629.",
|
||||
@@ -798,8 +796,6 @@
|
||||
"General": "\u0639\u0627\u0645",
|
||||
"Generate": "\u0625\u0646\u0634\u0627\u0621",
|
||||
"Generate Exception Certificates": "\u0625\u0646\u0634\u0627\u0621 \u0634\u0647\u0627\u062f\u0627\u062a \u0627\u0633\u062a\u062b\u0646\u0627\u0626\u064a\u0629",
|
||||
"Generate a Certificate for all users on the Exception list": "\u0625\u0646\u0634\u0627\u0621 \u0634\u0647\u0627\u062f\u0629 \u0644\u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0627\u0644\u0645\u062f\u0631\u062c\u0629 \u0627\u0633\u0645\u0627\u0624\u0647\u0645 \u0639\u0644\u0649 \u0644\u0627\u0626\u062d\u0629 \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621\u0627\u062a",
|
||||
"Generate certificates for all users on the Exception list who do not yet have a certificate": "\u0623\u0646\u0634\u0626 \u0634\u0647\u0627\u062f\u0627\u062a \u0644\u0643\u0644 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0627\u0644\u0630\u064a\u0646 \u0644\u0627 \u064a\u062d\u0645\u0644\u0648\u0646 \u0634\u0647\u0627\u062f\u0627\u062a \u0648\u0627\u0644\u0645\u0648\u062c\u0648\u062f\u064a\u0646 \u0639\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621\u0627\u062a",
|
||||
"Generate the user's certificate": "\u0625\u0646\u0634\u0627\u0621 \u0634\u0647\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645",
|
||||
"Get Credit": "\u0627\u062d\u0635\u0644 \u0639\u0644\u0649 \u0645\u0627\u062f\u0651\u0629 \u062f\u0631\u0627\u0633\u064a\u0629",
|
||||
"Go to Dashboard": "\u0627\u0644\u0630\u0647\u0627\u0628 \u0625\u0644\u0649 \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a",
|
||||
@@ -1763,7 +1759,6 @@
|
||||
"View Teams in the %(topic_name)s Topic": "\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0627\u0644\u0641\u0650\u0631\u0642 \u0641\u064a \u0645\u0648\u0636\u0648\u0639 %(topic_name)s",
|
||||
"View all errors": "\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0643\u0627\u0641\u0629 \u0627\u0644\u0623\u062e\u0637\u0627\u0621",
|
||||
"View discussion": "\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0627\u0644\u0645\u0646\u0627\u0642\u0634\u0629",
|
||||
"View/Share Certificate": "\u0627\u0639\u0631\u0636 \u0648\u0627\u0646\u0634\u0631 \u0634\u0647\u0627\u062f\u062a\u0643",
|
||||
"Viewing %s course": [
|
||||
"\u0625\u0638\u0647\u0627\u0631 %s \u0645\u0633\u0627\u0642",
|
||||
"\u0625\u0638\u0647\u0627\u0631 %s \u0645\u0633\u0627\u0642",
|
||||
@@ -1815,7 +1810,6 @@
|
||||
"We've encountered an error. Refresh your browser and then try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623. \u064a\u064f\u062c\u0631\u0649 \u0625\u0639\u0627\u062f\u0629 \u0641\u062a\u062d \u0645\u062a\u0635\u0641\u0651\u062d\u0643 \u062b\u0645\u0651 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629.",
|
||||
"We've sent a confirmation message to {new_email_address}. Click the link in the message to update your email address.": "\u0644\u0642\u062f \u0642\u0645\u0646\u0627 \u0628\u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u0629 \u062a\u0623\u0643\u064a\u062f \u0625\u0644\u0649 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a {new_email_address}. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0645\u062a\u0627\u062d \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0644\u062a\u062d\u062f\u064a\u062b \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.",
|
||||
"We've sent a message to {email_address}. Click the link in the message to reset your password.": "\u0644\u0642\u062f \u0642\u0645\u0646\u0627 \u0628\u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u0629 \u0625\u0644\u0649 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a {email_address}. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0645\u0648\u062c\u0648\u062f \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0644\u0625\u0639\u0627\u062f\u0629 \u0636\u0628\u0637 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631.",
|
||||
"We've sent instructions for resetting your password to the email address you provided.": "\u0623\u0631\u0633\u0644\u0646\u0627 \u0644\u0643 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0644\u0627\u0632\u0645\u0629 \u0644\u062a\u0639\u064a\u062f \u0636\u0628\u0637 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631\u0643 \u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u0630\u064a \u062d\u062f\u0651\u062f\u062a\u0647. ",
|
||||
"Web:": "\u0627\u0644\u0648\u064a\u0628:",
|
||||
"Webcam": "\u0643\u0627\u0645\u064a\u0631\u0627 \u0627\u0644\u0648\u064a\u0628 ",
|
||||
"Weight of Total Grade": "\u0648\u0632\u0646 \u0627\u0644\u062f\u0631\u062c\u0629 \u0627\u0644\u0625\u062c\u0645\u0627\u0644\u064a\u0629",
|
||||
@@ -1833,7 +1827,6 @@
|
||||
"Will Be Visible To:": "\u0633\u064a\u0635\u0628\u062d \u0645\u0631\u0626\u064a\u0651 \u0645\u0646: ",
|
||||
"Words: {0}": "\u0627\u0644\u0643\u0644\u0645\u0627\u062a: {0}",
|
||||
"Would you like to sign in using your %(providerName)s credentials?": "\u0647\u0644 \u062a\u0631\u064a\u062f \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0628\u064a\u0627\u0646\u0627\u062a \u062d\u0633\u0627\u0628\u0643 \u0644\u062f\u0649 %(providerName)s\u061f",
|
||||
"XSeries Program Certificates": "\u0634\u0647\u0627\u062f\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u062c XSeries",
|
||||
"Year of Birth": "\u0633\u0646\u0629 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
|
||||
"Yes, allow edits to the active Certificate": "\u0646\u0639\u0645\u060c \u0627\u0642\u0628\u0644 \u0627\u0644\u062a\u0639\u062f\u064a\u0644 \u0639\u0644\u0649 \u0639\u0644\u0649 \u0627\u0644\u0634\u0647\u0627\u062f\u062a \u0627\u0644\u0646\u0634\u0637\u0629.",
|
||||
"Yes, delete this %(xblock_type)s": "\u0646\u0639\u0645\u060c \u0627\u062d\u0630\u0641 \u0647\u0630\u0627 \u0627\u0644\u0640 %(xblock_type)s.",
|
||||
@@ -1844,7 +1837,6 @@
|
||||
"You are enrolling in: {courseName}": "\u0623\u0646\u062a \u0645\u0633\u062c\u0644 \u0641\u064a : {courseName}",
|
||||
"You are here": "\u0623\u0646\u062a \u0647\u0646\u0627",
|
||||
"You are not currently a member of any team.": "\u062d\u0627\u0644\u064a\u064b\u0627\u060c \u0623\u0646\u062a \u0644\u0633\u062a \u0639\u0636\u0648\u064b\u0627 \u0641\u064a \u0623\u064a \u0641\u0631\u064a\u0642.",
|
||||
"You are not enrolled in any XSeries Programs yet.": "\u0623\u0646\u062a \u0644\u0633\u062a \u0645\u0633\u062c\u0644\u0627\u064b \u0641\u064a \u0623\u064a \u0645\u0646 \u0628\u0631\u0627\u0645\u062c XSeries.",
|
||||
"You are now enrolled as a verified student for:": "\u0623\u0646\u062a \u0627\u0644\u0622\u0646 \u0645\u0633\u062c\u0651\u0650\u0644 \u0643\u0637\u0627\u0644\u0628 \u0645\u0648\u062b\u0651\u064e\u0642 \u0644\u062f\u0649: ",
|
||||
"You are sending an email message with the subject {subject} to the following recipients.": "\u0623\u0646\u062a \u0639\u0644\u0649 \u0648\u0634\u0643 \u0625\u0631\u0633\u0627\u0644 \u0639\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0648\u0639\u0646\u0648\u0627\u0646\u0647\u0627 \"{subject}\" \u0625\u0644\u0649",
|
||||
"You are upgrading your enrollment for: {courseName}": "\u0623\u0646\u062a \u062a\u0637\u0648\u0631 \u0627\u0634\u062a\u0631\u0627\u0643\u0643 \u0641\u064a: {courseName}",
|
||||
@@ -2031,7 +2023,6 @@
|
||||
],
|
||||
"timed": "\u0645\u0624\u0642\u0651\u062a",
|
||||
"title": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646",
|
||||
"type": "\u0627\u0644\u0646\u0648\u0639",
|
||||
"unanswered question": "\u0633\u0624\u0627\u0644 \u063a\u064a\u0631 \u0645\u064f\u062c\u0627\u0628 \u0639\u0644\u064a\u0647",
|
||||
"unit": "\u0648\u062d\u062f\u0629",
|
||||
"upload a PDF file or provide the path to a Studio asset file": "\u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0628\u0635\u064a\u063a\u0629 PDF \u0623\u0648 \u062a\u062d\u062f\u064a\u062f \u0645\u0633\u0627\u0631 \u0623\u062d\u062f \u0627\u0644\u0645\u0644\u0641\u0651\u0627\u062a \u0627\u0644\u0645\u0644\u062d\u0642\u0629 \u0628\u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0633\u062a\u0648\u062f\u064a\u0648",
|
||||
|
||||
@@ -205,6 +205,7 @@
|
||||
"Alignment": "\u00c0l\u00efgnm\u00e9nt \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142#",
|
||||
"All Groups": "\u00c0ll Gr\u00f6\u00fcps \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3#",
|
||||
"All Rights Reserved": "\u00c0ll R\u00efghts R\u00e9s\u00e9rv\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442,#",
|
||||
"All Time Zones": "\u00c0ll T\u00efm\u00e9 Z\u00f6n\u00e9s \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442#",
|
||||
"All Topics": "\u00c0ll T\u00f6p\u00ef\u00e7s \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3#",
|
||||
"All accounts were created successfully.": "\u00c0ll \u00e4\u00e7\u00e7\u00f6\u00fcnts w\u00e9r\u00e9 \u00e7r\u00e9\u00e4t\u00e9d s\u00fc\u00e7\u00e7\u00e9ssf\u00fcll\u00fd. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f#",
|
||||
"All chapters must have a name and asset": "\u00c0ll \u00e7h\u00e4pt\u00e9rs m\u00fcst h\u00e4v\u00e9 \u00e4 n\u00e4m\u00e9 \u00e4nd \u00e4ss\u00e9t \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f#",
|
||||
@@ -832,6 +833,7 @@
|
||||
"Instructor Photo URL": "\u00ccnstr\u00fc\u00e7t\u00f6r Ph\u00f6t\u00f6 \u00dbRL \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, #",
|
||||
"Instructor Title": "\u00ccnstr\u00fc\u00e7t\u00f6r T\u00eftl\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c#",
|
||||
"Instructor tools": "\u00ccnstr\u00fc\u00e7t\u00f6r t\u00f6\u00f6ls \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c#",
|
||||
"Internal Server Error.": "\u00ccnt\u00e9rn\u00e4l S\u00e9rv\u00e9r \u00c9rr\u00f6r. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2#",
|
||||
"Introduction to Cookie Baking": "\u00ccntr\u00f6d\u00fc\u00e7t\u00ef\u00f6n t\u00f6 \u00c7\u00f6\u00f6k\u00ef\u00e9 B\u00e4k\u00efng \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2#",
|
||||
"Invalidate Certificate": "\u00ccnv\u00e4l\u00efd\u00e4t\u00e9 \u00c7\u00e9rt\u00eff\u00ef\u00e7\u00e4t\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2#",
|
||||
"Invalidated": "\u00ccnv\u00e4l\u00efd\u00e4t\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f #",
|
||||
@@ -1461,6 +1463,7 @@
|
||||
"The page \"{route}\" could not be found.": "Th\u00e9 p\u00e4g\u00e9 \"{route}\" \u00e7\u00f6\u00fcld n\u00f6t \u00df\u00e9 f\u00f6\u00fcnd. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442#",
|
||||
"The photo of your face matches the photo on your ID.": "Th\u00e9 ph\u00f6t\u00f6 \u00f6f \u00fd\u00f6\u00fcr f\u00e4\u00e7\u00e9 m\u00e4t\u00e7h\u00e9s th\u00e9 ph\u00f6t\u00f6 \u00f6n \u00fd\u00f6\u00fcr \u00ccD. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#",
|
||||
"The public display name of the program.": "Th\u00e9 p\u00fc\u00dfl\u00ef\u00e7 d\u00efspl\u00e4\u00fd n\u00e4m\u00e9 \u00f6f th\u00e9 pr\u00f6gr\u00e4m. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f#",
|
||||
"The published branch version, {published}, was reset to the draft branch version, {draft}.": "Th\u00e9 p\u00fc\u00dfl\u00efsh\u00e9d \u00dfr\u00e4n\u00e7h v\u00e9rs\u00ef\u00f6n, {published}, w\u00e4s r\u00e9s\u00e9t t\u00f6 th\u00e9 dr\u00e4ft \u00dfr\u00e4n\u00e7h v\u00e9rs\u00ef\u00f6n, {draft}. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442#",
|
||||
"The raw error message is:": "Th\u00e9 r\u00e4w \u00e9rr\u00f6r m\u00e9ss\u00e4g\u00e9 \u00efs: \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455#",
|
||||
"The selected content group does not exist": "Th\u00e9 s\u00e9l\u00e9\u00e7t\u00e9d \u00e7\u00f6nt\u00e9nt gr\u00f6\u00fcp d\u00f6\u00e9s n\u00f6t \u00e9x\u00efst \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #",
|
||||
"The team \"{team}\" could not be found.": "Th\u00e9 t\u00e9\u00e4m \"{team}\" \u00e7\u00f6\u00fcld n\u00f6t \u00df\u00e9 f\u00f6\u00fcnd. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442#",
|
||||
@@ -1804,6 +1807,7 @@
|
||||
"You have already reported this annotation.": "\u00dd\u00f6\u00fc h\u00e4v\u00e9 \u00e4lr\u00e9\u00e4d\u00fd r\u00e9p\u00f6rt\u00e9d th\u00efs \u00e4nn\u00f6t\u00e4t\u00ef\u00f6n. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #",
|
||||
"You have already verified your ID!": "\u00dd\u00f6\u00fc h\u00e4v\u00e9 \u00e4lr\u00e9\u00e4d\u00fd v\u00e9r\u00eff\u00ef\u00e9d \u00fd\u00f6\u00fcr \u00ccD! \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442#",
|
||||
"You have been logged out of your edX account. ": "\u00dd\u00f6\u00fc h\u00e4v\u00e9 \u00df\u00e9\u00e9n l\u00f6gg\u00e9d \u00f6\u00fct \u00f6f \u00fd\u00f6\u00fcr \u00e9dX \u00e4\u00e7\u00e7\u00f6\u00fcnt. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#",
|
||||
"You have done a dry run of force publishing the course. Nothing has changed. Had you run it, the following course versions would have been change.": "\u00dd\u00f6\u00fc h\u00e4v\u00e9 d\u00f6n\u00e9 \u00e4 dr\u00fd r\u00fcn \u00f6f f\u00f6r\u00e7\u00e9 p\u00fc\u00dfl\u00efsh\u00efng th\u00e9 \u00e7\u00f6\u00fcrs\u00e9. N\u00f6th\u00efng h\u00e4s \u00e7h\u00e4ng\u00e9d. H\u00e4d \u00fd\u00f6\u00fc r\u00fcn \u00eft, th\u00e9 f\u00f6ll\u00f6w\u00efng \u00e7\u00f6\u00fcrs\u00e9 v\u00e9rs\u00ef\u00f6ns w\u00f6\u00fcld h\u00e4v\u00e9 \u00df\u00e9\u00e9n \u00e7h\u00e4ng\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1\u2202\u03b9\u03c1\u03b9\u0455\u03b9\u00a2\u03b9\u03b7g \u0454\u0142\u03b9\u0442, \u0455\u0454\u2202 \u2202\u03c3 \u0454\u03b9\u03c5\u0455\u043c\u03c3\u2202 \u0442\u0454\u043c\u03c1\u03c3\u044f \u03b9\u03b7\u00a2\u03b9\u2202\u03b9\u2202\u03c5\u03b7\u0442 \u03c5\u0442 \u0142\u03b1\u0432\u03c3\u044f\u0454 \u0454\u0442 \u2202\u03c3\u0142\u03c3\u044f\u0454 \u043c\u03b1g\u03b7\u03b1 \u03b1\u0142\u03b9q\u03c5\u03b1. \u03c5\u0442 \u0454\u03b7\u03b9\u043c \u03b1\u2202 \u043c\u03b9\u03b7\u03b9\u043c \u03bd\u0454\u03b7\u03b9\u03b1\u043c, q\u03c5\u03b9\u0455 \u03b7\u03c3\u0455\u0442\u044f\u03c5\u2202 \u0454\u03c7\u0454\u044f\u00a2\u03b9\u0442\u03b1\u0442\u03b9\u03c3\u03b7 \u03c5\u0142\u0142\u03b1\u043c\u00a2\u03c3 \u0142\u03b1\u0432\u03c3\u044f\u03b9\u0455 \u03b7\u03b9\u0455\u03b9 \u03c5\u0442 \u03b1\u0142\u03b9q\u03c5\u03b9\u03c1 \u0454\u03c7 \u0454\u03b1 \u00a2\u03c3\u043c\u043c\u03c3\u2202\u03c3 \u00a2\u03c3\u03b7\u0455\u0454q\u03c5\u03b1\u0442. \u2202\u03c5\u03b9\u0455 \u03b1\u03c5\u0442\u0454 \u03b9\u044f\u03c5\u044f\u0454 \u2202\u03c3\u0142\u03c3\u044f \u03b9\u03b7 \u044f\u0454\u03c1\u044f\u0454\u043d\u0454\u03b7\u2202\u0454\u044f\u03b9\u0442 \u03b9\u03b7 \u03bd\u03c3\u0142\u03c5\u03c1\u0442\u03b1\u0442\u0454 \u03bd\u0454\u0142\u03b9\u0442 \u0454\u0455\u0455\u0454 \u00a2\u03b9\u0142\u0142\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f\u0454 \u0454\u03c5 \u0192\u03c5g\u03b9\u03b1\u0442 \u03b7\u03c5\u0142\u0142\u03b1 \u03c1\u03b1\u044f\u03b9\u03b1\u0442\u03c5\u044f. \u0454\u03c7\u00a2\u0454\u03c1\u0442\u0454\u03c5\u044f \u0455\u03b9\u03b7\u0442 \u03c3\u00a2\u00a2\u03b1\u0454\u00a2\u03b1\u0442 \u00a2\u03c5\u03c1\u03b9\u2202\u03b1\u0442\u03b1\u0442 \u03b7\u03c3\u03b7 \u03c1\u044f\u03c3\u03b9\u2202\u0454\u03b7\u0442, \u0455\u03c5\u03b7\u0442 \u03b9\u03b7 \u00a2\u03c5\u0142\u03c1\u03b1 q\u03c5\u03b9 \u03c3\u0192\u0192\u03b9\u00a2\u03b9\u03b1 \u2202\u0454\u0455\u0454\u044f\u03c5\u03b7\u0442 \u043c\u03c3\u0142\u0142\u03b9\u0442 \u03b1\u03b7\u03b9\u043c \u03b9#",
|
||||
"You have earned certificates in %(completed_courses)s of the %(total_courses)s courses so far.": "\u00dd\u00f6\u00fc h\u00e4v\u00e9 \u00e9\u00e4rn\u00e9d \u00e7\u00e9rt\u00eff\u00ef\u00e7\u00e4t\u00e9s \u00efn %(completed_courses)s \u00f6f th\u00e9 %(total_courses)s \u00e7\u00f6\u00fcrs\u00e9s s\u00f6 f\u00e4r. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#",
|
||||
"You have no handouts defined": "\u00dd\u00f6\u00fc h\u00e4v\u00e9 n\u00f6 h\u00e4nd\u00f6\u00fcts d\u00e9f\u00efn\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2#",
|
||||
"You have not bookmarked any courseware pages yet.": "\u00dd\u00f6\u00fc h\u00e4v\u00e9 n\u00f6t \u00df\u00f6\u00f6km\u00e4rk\u00e9d \u00e4n\u00fd \u00e7\u00f6\u00fcrs\u00e9w\u00e4r\u00e9 p\u00e4g\u00e9s \u00fd\u00e9t. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#",
|
||||
|
||||
@@ -673,8 +673,6 @@
|
||||
"Explain if other.": "Si otro, explique.",
|
||||
"Explanation": "Explicaci\u00f3n",
|
||||
"Explicitly Hiding from Students": "Ocultar solo a los estudiantes",
|
||||
"Explore New XSeries": "Explora XSeries nuevos",
|
||||
"Explore XSeries Programs": "Explora Programas de XSeries nuevos",
|
||||
"Explore your course!": "Explora tus cursos!",
|
||||
"Failed to delete student state.": "Fall\u00f3 al borrar el estado de usuario.",
|
||||
"Failed to rescore problem.": "Fall\u00f3 al re puntuar el problema.",
|
||||
@@ -716,8 +714,6 @@
|
||||
"General": "General",
|
||||
"Generate": "Generar",
|
||||
"Generate Exception Certificates": "Generar excepciones de certificados",
|
||||
"Generate a Certificate for all users on the Exception list": "Generar un certificado para cada usuario en la lista de excepciones",
|
||||
"Generate certificates for all users on the Exception list who do not yet have a certificate": "Producir certificados para todos los usuarios en la lista de excepciones que a\u00fan no tienen un certificado",
|
||||
"Generate the user's certificate": "Generar el certificado del usuario",
|
||||
"Get Credit": "Obtenga cr\u00e9ditos",
|
||||
"Go to Dashboard": "Ir al panel de control",
|
||||
@@ -1452,7 +1448,6 @@
|
||||
"The page \"{route}\" could not be found.": "La p\u00e1gina \"{route}\" no pudo ser encontrada.",
|
||||
"The photo of your face matches the photo on your ID.": "La foto de su documento coincide con la foto de su cara.",
|
||||
"The public display name of the program.": "Nombre del programa para mostrar p\u00fablicamente",
|
||||
"The published branch version, {published}, was reset to the draft branch version, {draft}.": "La versi\u00f3n publicada {published}, fu\u00e9 restablecida a la versi\u00f3n borrador {draft}.",
|
||||
"The raw error message is:": "El error crudo es:",
|
||||
"The selected content group does not exist": "No existe contenido para el curso seleccionado",
|
||||
"The team \"{team}\" could not be found.": "El equipo \"{team}\" no pudo ser encontrado.",
|
||||
@@ -1697,7 +1692,6 @@
|
||||
"View Teams in the %(topic_name)s Topic": "Ver equipos en el tema %(topic_name)s",
|
||||
"View all errors": "Ver todos los errores",
|
||||
"View discussion": "Ver discusi\u00f3n",
|
||||
"View/Share Certificate": "Ver/compartir Certificado",
|
||||
"Viewing %s course": [
|
||||
"Mostrando %s curso",
|
||||
"Mostrando %s cursos"
|
||||
@@ -1746,7 +1740,6 @@
|
||||
"We've encountered an error. Refresh your browser and then try again.": "Hemos detectado un error. Por favor recargue la p\u00e1gina en el navegador e intente nuevamente.",
|
||||
"We've sent a confirmation message to {new_email_address}. Click the link in the message to update your email address.": "Hemos enviado un mensaje de confirmaci\u00f3n a {new_email_address}. Haga clic en el v\u00ednculo del mensaje para actualizar su correo electr\u00f3nico.",
|
||||
"We've sent a message to {email_address}. Click the link in the message to reset your password.": "Hemos enviado un mensaje a {email_address}. Haga clic en el v\u00ednculo del mensaje para restablecer su contrase\u00f1a.",
|
||||
"We've sent instructions for resetting your password to the email address you provided.": "Te hemos enviado las instrucciones para restablecer la contrase\u00f1a a la direcci\u00f3n de correo electr\u00f3nico que has proporcionado.",
|
||||
"Web:": "Web:",
|
||||
"Webcam": "C\u00e1mara web",
|
||||
"Weight of Total Grade": "Peso en la calificaci\u00f3n total",
|
||||
@@ -1765,7 +1758,6 @@
|
||||
"Words: {0}": "Palabras: {0}",
|
||||
"Would you like to sign in using your %(providerName)s credentials?": "\u00bfDesea iniciar sesi\u00f3n usando %(providerName)s?",
|
||||
"XSeries": "XSeries",
|
||||
"XSeries Program Certificates": "Certificados de programas de XSeries",
|
||||
"Year of Birth": "A\u00f1o de nacimiento",
|
||||
"Yes, allow edits to the active Certificate": "Si, permitir modificaciones al certificado activo.",
|
||||
"Yes, delete this %(xblock_type)s": "Si, borrar este %(xblock_type)s",
|
||||
@@ -1776,7 +1768,6 @@
|
||||
"You are enrolling in: {courseName}": "Te est\u00e1s inscribiendo en: {courseName}",
|
||||
"You are here": "Usted est\u00e1 aqu\u00ed",
|
||||
"You are not currently a member of any team.": "Usted no es actualmente miembro de ning\u00fan equipo.",
|
||||
"You are not enrolled in any XSeries Programs yet.": "No se encuentra inscrito en ning\u00fan Programa de XSeries a\u00fan.",
|
||||
"You are now enrolled as a verified student for:": "Ahora estas inscrito como estudiante verificado para:",
|
||||
"You are sending an email message with the subject {subject} to the following recipients.": "Usted est\u00e1 enviando un correo electr\u00f3nico con asunto {subject} a los siguientes destinatarios.",
|
||||
"You are upgrading your enrollment for: {courseName}": "Est\u00e1s cambiando a la modalidad verificada para: {courseName}",
|
||||
@@ -1951,7 +1942,6 @@
|
||||
],
|
||||
"timed": "cronometrado",
|
||||
"title": "T\u00edtulo",
|
||||
"type": "tipo",
|
||||
"unanswered question": "pregunta sin responder",
|
||||
"unit": "unidad",
|
||||
"upload a PDF file or provide the path to a Studio asset file": "Suba un archivo PDF o ingrese la ruta de un recurso en Studio",
|
||||
|
||||
@@ -205,6 +205,7 @@
|
||||
"Alignment": "\u023al\u1d09\u0183n\u026f\u01ddn\u0287",
|
||||
"All Groups": "\u023all \u01e4\u0279\u00f8nds",
|
||||
"All Rights Reserved": "\u023all \u024c\u1d09\u0183\u0265\u0287s \u024c\u01dds\u01dd\u0279\u028c\u01ddd",
|
||||
"All Time Zones": "\u023all \u0166\u1d09\u026f\u01dd \u01b5\u00f8n\u01dds",
|
||||
"All Topics": "\u023all \u0166\u00f8d\u1d09\u0254s",
|
||||
"All accounts were created successfully.": "\u023all \u0250\u0254\u0254\u00f8nn\u0287s \u028d\u01dd\u0279\u01dd \u0254\u0279\u01dd\u0250\u0287\u01ddd sn\u0254\u0254\u01ddss\u025fnll\u028e.",
|
||||
"All chapters must have a name and asset": "\u023all \u0254\u0265\u0250d\u0287\u01dd\u0279s \u026fns\u0287 \u0265\u0250\u028c\u01dd \u0250 n\u0250\u026f\u01dd \u0250nd \u0250ss\u01dd\u0287",
|
||||
@@ -832,6 +833,7 @@
|
||||
"Instructor Photo URL": "\u0197ns\u0287\u0279n\u0254\u0287\u00f8\u0279 \u2c63\u0265\u00f8\u0287\u00f8 \u0244\u024c\u0141",
|
||||
"Instructor Title": "\u0197ns\u0287\u0279n\u0254\u0287\u00f8\u0279 \u0166\u1d09\u0287l\u01dd",
|
||||
"Instructor tools": "\u0197ns\u0287\u0279n\u0254\u0287\u00f8\u0279 \u0287\u00f8\u00f8ls",
|
||||
"Internal Server Error.": "\u0197n\u0287\u01dd\u0279n\u0250l S\u01dd\u0279\u028c\u01dd\u0279 \u0246\u0279\u0279\u00f8\u0279.",
|
||||
"Introduction to Cookie Baking": "\u0197n\u0287\u0279\u00f8dn\u0254\u0287\u1d09\u00f8n \u0287\u00f8 \u023b\u00f8\u00f8\u029e\u1d09\u01dd \u0243\u0250\u029e\u1d09n\u0183",
|
||||
"Invalidate Certificate": "\u0197n\u028c\u0250l\u1d09d\u0250\u0287\u01dd \u023b\u01dd\u0279\u0287\u1d09\u025f\u1d09\u0254\u0250\u0287\u01dd",
|
||||
"Invalidated": "\u0197n\u028c\u0250l\u1d09d\u0250\u0287\u01ddd",
|
||||
@@ -1461,6 +1463,7 @@
|
||||
"The page \"{route}\" could not be found.": "\u0166\u0265\u01dd d\u0250\u0183\u01dd \"{route}\" \u0254\u00f8nld n\u00f8\u0287 b\u01dd \u025f\u00f8nnd.",
|
||||
"The photo of your face matches the photo on your ID.": "\u0166\u0265\u01dd d\u0265\u00f8\u0287\u00f8 \u00f8\u025f \u028e\u00f8n\u0279 \u025f\u0250\u0254\u01dd \u026f\u0250\u0287\u0254\u0265\u01dds \u0287\u0265\u01dd d\u0265\u00f8\u0287\u00f8 \u00f8n \u028e\u00f8n\u0279 \u0197\u0110.",
|
||||
"The public display name of the program.": "\u0166\u0265\u01dd dnbl\u1d09\u0254 d\u1d09sdl\u0250\u028e n\u0250\u026f\u01dd \u00f8\u025f \u0287\u0265\u01dd d\u0279\u00f8\u0183\u0279\u0250\u026f.",
|
||||
"The published branch version, {published}, was reset to the draft branch version, {draft}.": "\u0166\u0265\u01dd dnbl\u1d09s\u0265\u01ddd b\u0279\u0250n\u0254\u0265 \u028c\u01dd\u0279s\u1d09\u00f8n, {published}, \u028d\u0250s \u0279\u01dds\u01dd\u0287 \u0287\u00f8 \u0287\u0265\u01dd d\u0279\u0250\u025f\u0287 b\u0279\u0250n\u0254\u0265 \u028c\u01dd\u0279s\u1d09\u00f8n, {draft}.",
|
||||
"The raw error message is:": "\u0166\u0265\u01dd \u0279\u0250\u028d \u01dd\u0279\u0279\u00f8\u0279 \u026f\u01ddss\u0250\u0183\u01dd \u1d09s:",
|
||||
"The selected content group does not exist": "\u0166\u0265\u01dd s\u01ddl\u01dd\u0254\u0287\u01ddd \u0254\u00f8n\u0287\u01ddn\u0287 \u0183\u0279\u00f8nd d\u00f8\u01dds n\u00f8\u0287 \u01ddx\u1d09s\u0287",
|
||||
"The team \"{team}\" could not be found.": "\u0166\u0265\u01dd \u0287\u01dd\u0250\u026f \"{team}\" \u0254\u00f8nld n\u00f8\u0287 b\u01dd \u025f\u00f8nnd.",
|
||||
@@ -1804,6 +1807,7 @@
|
||||
"You have already reported this annotation.": "\u024e\u00f8n \u0265\u0250\u028c\u01dd \u0250l\u0279\u01dd\u0250d\u028e \u0279\u01ddd\u00f8\u0279\u0287\u01ddd \u0287\u0265\u1d09s \u0250nn\u00f8\u0287\u0250\u0287\u1d09\u00f8n.",
|
||||
"You have already verified your ID!": "\u024e\u00f8n \u0265\u0250\u028c\u01dd \u0250l\u0279\u01dd\u0250d\u028e \u028c\u01dd\u0279\u1d09\u025f\u1d09\u01ddd \u028e\u00f8n\u0279 \u0197\u0110!",
|
||||
"You have been logged out of your edX account. ": "\u024e\u00f8n \u0265\u0250\u028c\u01dd b\u01dd\u01ddn l\u00f8\u0183\u0183\u01ddd \u00f8n\u0287 \u00f8\u025f \u028e\u00f8n\u0279 \u01dddX \u0250\u0254\u0254\u00f8nn\u0287. ",
|
||||
"You have done a dry run of force publishing the course. Nothing has changed. Had you run it, the following course versions would have been change.": "\u024e\u00f8n \u0265\u0250\u028c\u01dd d\u00f8n\u01dd \u0250 d\u0279\u028e \u0279nn \u00f8\u025f \u025f\u00f8\u0279\u0254\u01dd dnbl\u1d09s\u0265\u1d09n\u0183 \u0287\u0265\u01dd \u0254\u00f8n\u0279s\u01dd. N\u00f8\u0287\u0265\u1d09n\u0183 \u0265\u0250s \u0254\u0265\u0250n\u0183\u01ddd. \u0126\u0250d \u028e\u00f8n \u0279nn \u1d09\u0287, \u0287\u0265\u01dd \u025f\u00f8ll\u00f8\u028d\u1d09n\u0183 \u0254\u00f8n\u0279s\u01dd \u028c\u01dd\u0279s\u1d09\u00f8ns \u028d\u00f8nld \u0265\u0250\u028c\u01dd b\u01dd\u01ddn \u0254\u0265\u0250n\u0183\u01dd.",
|
||||
"You have earned certificates in %(completed_courses)s of the %(total_courses)s courses so far.": "\u024e\u00f8n \u0265\u0250\u028c\u01dd \u01dd\u0250\u0279n\u01ddd \u0254\u01dd\u0279\u0287\u1d09\u025f\u1d09\u0254\u0250\u0287\u01dds \u1d09n %(completed_courses)s \u00f8\u025f \u0287\u0265\u01dd %(total_courses)s \u0254\u00f8n\u0279s\u01dds s\u00f8 \u025f\u0250\u0279.",
|
||||
"You have no handouts defined": "\u024e\u00f8n \u0265\u0250\u028c\u01dd n\u00f8 \u0265\u0250nd\u00f8n\u0287s d\u01dd\u025f\u1d09n\u01ddd",
|
||||
"You have not bookmarked any courseware pages yet.": "\u024e\u00f8n \u0265\u0250\u028c\u01dd n\u00f8\u0287 b\u00f8\u00f8\u029e\u026f\u0250\u0279\u029e\u01ddd \u0250n\u028e \u0254\u00f8n\u0279s\u01dd\u028d\u0250\u0279\u01dd d\u0250\u0183\u01dds \u028e\u01dd\u0287.",
|
||||
|
||||
@@ -1050,7 +1050,6 @@
|
||||
"We weren't able to send you a password reset email.": "Il ne nous a pas \u00e9t\u00e9 possible de vous envoyer un mail de r\u00e9initialisation du mot de passe.",
|
||||
"We're sorry, there was an error": "D\u00e9sol\u00e9, il y a eu une erreur",
|
||||
"We've encountered an error. Refresh your browser and then try again.": "Nous avons rencontr\u00e9 une erreur. Rafra\u00eechissez votre navigateur puis r\u00e9essayer.",
|
||||
"We've sent instructions for resetting your password to the email address you provided.": "Nous avons envoy\u00e9 les instructions pour r\u00e9initialiser votre mot de passe \u00e0 l'adresse email que vous avez fournie.",
|
||||
"Web:": "Web :",
|
||||
"Webcam": "Webcam",
|
||||
"What does %(platformName)s do with this photo?": "Que fait %(platformName)s avec cette photo ?",
|
||||
|
||||
@@ -138,6 +138,8 @@
|
||||
"A list of courses you have just enrolled in as a verified student": "\u05e8\u05e9\u05d9\u05de\u05d4 \u05e9\u05dc \u05e7\u05d5\u05e8\u05e1\u05d9\u05dd \u05dc\u05d4\u05dd \u05e0\u05e8\u05e9\u05de\u05ea \u05db\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05d1\u05e2\u05dc \u05d6\u05d4\u05d5\u05ea \u05de\u05d0\u05d5\u05de\u05ea\u05ea. ",
|
||||
"A name that identifies your team (maximum 255 characters).": "\u05e9\u05dd \u05e9\u05de\u05d6\u05d4\u05d4 \u05d0\u05ea \u05d4\u05e6\u05d5\u05d5\u05ea \u05e9\u05dc\u05da (255 \u05ea\u05d5\u05d5\u05d9\u05dd \u05dc\u05db\u05dc \u05d4\u05d9\u05d5\u05ea\u05e8).",
|
||||
"A short description of the team to help other learners understand the goals or direction of the team (maximum 300 characters).": "\u05ea\u05d9\u05d0\u05d5\u05e8 \u05e7\u05e6\u05e8 \u05e9\u05dc \u05d4\u05e6\u05d5\u05d5\u05ea \u05e9\u05d9\u05e2\u05d6\u05d5\u05e8 \u05dc\u05ea\u05dc\u05de\u05d9\u05d3\u05d9\u05dd \u05d0\u05d7\u05e8\u05d9\u05dd \u05dc\u05d4\u05d1\u05d9\u05df \u05d0\u05ea \u05d4\u05d9\u05e2\u05d3\u05d9\u05dd \u05d0\u05d5 \u05d4\u05db\u05d9\u05d5\u05d5\u05df \u05e9\u05dc \u05d4\u05e6\u05d5\u05d5\u05ea (300 \u05ea\u05d5\u05d5\u05d9\u05dd \u05dc\u05db\u05dc \u05d4\u05d9\u05d5\u05ea\u05e8).",
|
||||
"A valid email address is required": "\u05d3\u05e8\u05d5\u05e9\u05d4 \u05db\u05ea\u05d5\u05d1\u05ea \u05d3\u05d5\u05d0\"\u05dc \u05ea\u05e7\u05d9\u05e0\u05d4",
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ": "\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05db\u05dc\u05de\u05e0\u05e1\u05e2\u05e4\u05e6\u05e7\u05e8\u05e9\u05ea",
|
||||
"Abbreviation": "\u05e7\u05d9\u05e6\u05d5\u05e8",
|
||||
"About Me": "\u05d0\u05d5\u05d3\u05d5\u05ea\u05d9\u05d9",
|
||||
"About You": "\u05d0\u05d5\u05d3\u05d5\u05ea\u05d9\u05d9\u05da",
|
||||
@@ -148,6 +150,7 @@
|
||||
"Account Settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d7\u05e9\u05d1\u05d5\u05df",
|
||||
"Account Settings page.": "\u05e2\u05de\u05d5\u05d3 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d7\u05e9\u05d1\u05d5\u05df",
|
||||
"Action": "\u05e4\u05e2\u05d5\u05dc\u05d4",
|
||||
"Action required: Enter a valid date.": "\u05e0\u05d3\u05e8\u05e9\u05ea \u05e4\u05e2\u05d5\u05dc\u05d4: \u05d4\u05d6\u05df \u05ea\u05d0\u05e8\u05d9\u05da \u05d7\u05d5\u05e7\u05d9.",
|
||||
"Actions": "\u05e4\u05e2\u05d5\u05dc\u05d5\u05ea",
|
||||
"Activate": "\u05d4\u05e4\u05e2\u05dc",
|
||||
"Activate Your Account": "\u05d4\u05e4\u05e2\u05dc \u05d0\u05ea \u05d7\u05e9\u05d1\u05d5\u05e0\u05da",
|
||||
@@ -174,11 +177,16 @@
|
||||
"Add students to this cohort": "\u05d4\u05d5\u05e1\u05e3 \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05dc\u05e7\u05d1\u05d5\u05e6\u05ea \u05dc\u05d9\u05de\u05d5\u05d3 \u05d6\u05d5. ",
|
||||
"Add to Dictionary": "\u05d4\u05d5\u05e1\u05e3 \u05dc\u05de\u05d9\u05dc\u05d5\u05df",
|
||||
"Add to Exception List": "\u05d4\u05d5\u05e1\u05e3 \u05dc\u05e8\u05e9\u05d9\u05de\u05ea \u05d4\u05d7\u05e8\u05d9\u05d2\u05d9\u05dd",
|
||||
"Add your first content group": "\u05d4\u05d5\u05e1\u05e3 \u05d0\u05ea \u05e7\u05d1\u05d5\u05e6\u05ea \u05d4\u05ea\u05d5\u05db\u05df \u05d4\u05e8\u05d0\u05e9\u05d5\u05e0\u05d4 \u05e9\u05dc\u05da",
|
||||
"Add your first group configuration": "\u05d4\u05d5\u05e1\u05e3 \u05d0\u05ea \u05d4\u05d2\u05d3\u05e8\u05ea \u05ea\u05e6\u05d5\u05e8\u05ea \u05e7\u05d1\u05d5\u05e6\u05ea\u05da \u05d4\u05e8\u05d0\u05e9\u05d5\u05e0\u05d4 ",
|
||||
"Add your first textbook": "\u05d4\u05d5\u05e1\u05e3 \u05d0\u05ea \u05e1\u05e4\u05e8 \u05d4\u05dc\u05d9\u05de\u05d5\u05d3 \u05d4\u05e8\u05d0\u05e9\u05d5\u05df \u05e9\u05dc\u05da",
|
||||
"Add your post to a relevant topic to help others find it.": "\u05d4\u05d5\u05e1\u05e3 \u05d0\u05ea \u05d4\u05e4\u05d5\u05e1\u05d8 \u05e9\u05dc\u05da \u05dc\u05e0\u05d5\u05e9\u05d0 \u05d4\u05e8\u05dc\u05d5\u05d5\u05e0\u05d8\u05d9 \u05db\u05d3\u05d9 \u05dc\u05d4\u05db\u05dc \u05e2\u05dc \u05d0\u05d7\u05e8\u05d9\u05dd \u05dc\u05de\u05e6\u05d5\u05d0 \u05d0\u05d5\u05ea\u05d5.",
|
||||
"Add {role} Access": "\u05d4\u05d5\u05e1\u05e3 \u05d2\u05d9\u05e9\u05ea {role}",
|
||||
"Adding": "\u05de\u05d5\u05e1\u05d9\u05e3",
|
||||
"Adding the selected course to your cart": "\u05d4\u05d5\u05e1\u05e4\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1 \u05e9\u05e0\u05d1\u05d7\u05e8 \u05dc\u05e2\u05d2\u05dc\u05d4 \u05e9\u05dc\u05da",
|
||||
"Admin": "\u05de\u05e0\u05d4\u05dc",
|
||||
"Advanced": "\u05de\u05ea\u05e7\u05d3\u05dd",
|
||||
"After you publish this program, you cannot add or remove course codes or remove course runs.": "\u05dc\u05d0\u05d7\u05e8 \u05e4\u05e8\u05e1\u05d5\u05dd \u05ea\u05db\u05e0\u05d9\u05ea \u05d6\u05d5, \u05d0\u05d9\u05e0\u05da \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05e1\u05d9\u05e8 \u05d0\u05ea \u05e7\u05d5\u05d3\u05d9 \u05d4\u05e7\u05d5\u05e8\u05e1 \u05d0\u05d5 \u05dc\u05d4\u05e1\u05d9\u05e8 \u05d4\u05e8\u05e6\u05ea \u05e7\u05d5\u05e8\u05e1.",
|
||||
"Align center": "\u05d9\u05e9\u05e8 \u05dc\u05de\u05e8\u05db\u05d6",
|
||||
"Align left": "\u05d9\u05e9\u05e8 \u05dc\u05e9\u05de\u05d0\u05dc",
|
||||
"Align right": "\u05d9\u05e9\u05e8 \u05dc\u05d9\u05de\u05d9\u05df",
|
||||
@@ -187,14 +195,24 @@
|
||||
"All Rights Reserved": "\u05db\u05dc \u05d4\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea",
|
||||
"All Topics": "\u05db\u05dc \u05d4\u05e0\u05d5\u05e9\u05d0\u05d9\u05dd",
|
||||
"All accounts were created successfully.": "\u05db\u05dc \u05d4\u05d7\u05e9\u05d1\u05d5\u05e0\u05d5\u05ea \u05e0\u05d5\u05e6\u05e8\u05d5 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4",
|
||||
"All chapters must have a name and asset": "\u05dc\u05db\u05dc \u05d4\u05e4\u05e8\u05e7\u05d9\u05dd \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05e9\u05dd \u05d5\u05e2\u05e8\u05da",
|
||||
"All flags have been removed. To undo, uncheck the box.": "\u05db\u05dc \u05d4\u05d3\u05d2\u05dc\u05d9\u05dd \u05e0\u05de\u05d7\u05e7\u05d5. \u05db\u05d3\u05d9 \u05dc\u05d1\u05d8\u05dc, \u05d1\u05d8\u05dc \u05d0\u05ea \u05e1\u05d9\u05de\u05d5\u05df \u05d4\u05ea\u05d9\u05d1\u05d4.",
|
||||
"All groups must have a name.": "\u05dc\u05db\u05dc \u05d4\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05e9\u05dd.",
|
||||
"All groups must have a unique name.": "\u05dc\u05db\u05dc \u05d4\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05e9\u05dd \u05d9\u05d9\u05d7\u05d5\u05d3\u05d9.",
|
||||
"All payment options are currently unavailable.": "\u05db\u05dc \u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d4\u05ea\u05e9\u05dc\u05d5\u05dd \u05d0\u05d9\u05e0\u05df \u05d6\u05de\u05d9\u05e0\u05d5\u05ea \u05db\u05e8\u05d2\u05e2.",
|
||||
"All professional education courses are fee-based, and require payment to complete the enrollment process.": "\u05db\u05dc \u05d4\u05e7\u05d5\u05e8\u05e1\u05d9\u05dd \u05d1\u05d7\u05d9\u05e0\u05d5\u05da \u05d4\u05de\u05d9\u05e7\u05e6\u05d5\u05e2\u05d9 \u05de\u05d1\u05d5\u05e1\u05e1\u05d9\u05dd \u05e2\u05dc \u05ea\u05e9\u05dc\u05d5\u05dd, \u05d5\u05dc\u05db\u05df \u05e0\u05d3\u05e8\u05e9 \u05ea\u05e9\u05dc\u05d5\u05dd \u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05dc\u05d9\u05dd \u05d0\u05ea \u05ea\u05d4\u05dc\u05d9\u05da \u05d4\u05d4\u05e8\u05e9\u05de\u05d4.",
|
||||
"All subsections": "\u05db\u05dc \u05ea\u05ea\u05d9 \u05e7\u05d8\u05e2\u05d9\u05dd",
|
||||
"All teams": "\u05db\u05dc \u05d4\u05e6\u05d5\u05d5\u05ea\u05d9\u05dd",
|
||||
"All topics": "\u05db\u05dc \u05d4\u05e0\u05d5\u05e9\u05d0\u05d9\u05dd",
|
||||
"All units": "\u05db\u05dc \u05d4\u05d9\u05d7\u05d9\u05d3\u05d5\u05ea",
|
||||
"Allow others to copy, distribute, display and perform only verbatim copies of your work, not derivative works based upon it. This option is incompatible with \"Share Alike\".": "\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d0\u05d7\u05e8\u05d9\u05dd \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7, \u05dc\u05d4\u05e4\u05d9\u05e5, \u05dc\u05d4\u05e6\u05d9\u05d2 \u05d5\u05dc\u05d1\u05e6\u05e2 \u05d0\u05da \u05d5\u05e8\u05e7 \u05e2\u05d5\u05ea\u05e7\u05d9\u05dd \u05de\u05d3\u05d5\u05d9\u05e7\u05d9\u05dd \u05e9\u05dc \u05e2\u05d1\u05d5\u05d3\u05ea\u05da \u05d5\u05dc\u05d0 \u05e2\u05d1\u05d5\u05d3\u05d5\u05ea \u05d4\u05e0\u05d2\u05d6\u05e8\u05d5\u05ea \u05de\u05de\u05e0\u05d4. \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05d6\u05d5 \u05d0\u05d9\u05e0\u05d4 \u05de\u05ea\u05d0\u05d9\u05de\u05d4 \u05dc\"Share Alike\".",
|
||||
"Allow others to copy, distribute, display and perform your copyrighted work but only if they give credit the way you request. Currently, this option is required.": "\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d0\u05d7\u05e8\u05d9\u05dd \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7, \u05dc\u05d4\u05e4\u05d9\u05e5, \u05dc\u05d4\u05e6\u05d9\u05d2 \u05d5\u05dc\u05d1\u05e6\u05e2 \u05d0\u05ea \u05d4\u05e2\u05d1\u05d5\u05d3\u05d4 \u05d4\u05de\u05d5\u05d2\u05e0\u05ea \u05d1\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05d4\u05d9\u05d5\u05e6\u05e8\u05d9\u05dd \u05e9\u05dc\u05da, \u05d0\u05da \u05e8\u05e7 \u05d0\u05dd \u05d4\u05dd \u05de\u05db\u05d9\u05e8\u05d9\u05dd \u05d1\u05d6\u05db\u05d5\u05d9\u05d5\u05ea\u05d9\u05da \u05e2\u05dc \u05e4\u05d9 \u05d1\u05e7\u05e9\u05ea\u05da. \u05e0\u05db\u05d5\u05df \u05dc\u05e2\u05db\u05e9\u05d9\u05d5, \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05d6\u05d5 \u05d4\u05d9\u05d0 \u05d7\u05d5\u05d1\u05d4.",
|
||||
"Allow others to copy, distribute, display and perform your work - and derivative works based upon it - but for noncommercial purposes only.": "\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d0\u05d7\u05e8\u05d9\u05dd \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7, \u05dc\u05d4\u05e4\u05d9\u05e5, \u05dc\u05d4\u05e6\u05d9\u05d2 \u05d5\u05dc\u05d1\u05e6\u05e2 \u05d0\u05ea \u05e2\u05d1\u05d5\u05d3\u05ea\u05da - \u05d5\u05e2\u05d1\u05d5\u05d3\u05d5\u05ea \u05d4\u05e0\u05d2\u05d6\u05e8\u05d5\u05ea \u05de\u05de\u05e0\u05d4- \u05e9\u05dc\u05d0 \u05dc\u05de\u05d8\u05e8\u05d5\u05ea \u05de\u05e1\u05d7\u05e8.",
|
||||
"Allow others to distribute derivative works only under a license identical to the license that governs your work. This option is incompatible with \"No Derivatives\".": "\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d0\u05d7\u05e8\u05d9\u05dd \u05dc\u05d4\u05e4\u05d9\u05e5 \u05e2\u05d1\u05d5\u05d3\u05d5\u05ea \u05e0\u05d2\u05d6\u05e8\u05d5\u05ea \u05d0\u05da \u05d5\u05e8\u05e7 \u05d1\u05e8\u05d9\u05e9\u05d9\u05d5\u05df \u05d3\u05d5\u05de\u05d4 \u05dc\u05e8\u05d9\u05e9\u05d9\u05d5\u05df \u05e9\u05e7\u05d9\u05d9\u05dd \u05dc\u05e2\u05d1\u05d5\u05d3\u05ea\u05da. \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05d6\u05d5 \u05d0\u05d9\u05e0\u05d4 \u05de\u05ea\u05d0\u05d9\u05de\u05d4 \u05dc\"\u05dc\u05dc\u05d0 \u05e0\u05d2\u05d6\u05e8\u05d5\u05ea\".",
|
||||
"Allow students to generate certificates for this course?": "\u05d0\u05e4\u05e9\u05e8 \u05dc\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05dc\u05d9\u05e6\u05d5\u05e8 \u05ea\u05e2\u05d5\u05d3\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 \u05e7\u05d5\u05e8\u05e1 \u05d6\u05d4?",
|
||||
"Already a course team member": "\u05db\u05d1\u05e8 \u05d7\u05d1\u05e8 \u05d1\u05e6\u05d5\u05d5\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
"Already a library team member": "\u05db\u05d1\u05e8 \u05d7\u05d1\u05e8 \u05d1\u05e6\u05d5\u05d5\u05ea \u05d4\u05e1\u05e4\u05e8\u05d9\u05d9\u05d4",
|
||||
"Already a member": "\u05db\u05d1\u05e8 \u05d7\u05d1\u05e8",
|
||||
"Already have an account?": "\u05d7\u05e9\u05d1\u05d5\u05df \u05db\u05d1\u05e8 \u05e7\u05d9\u05d9\u05dd?",
|
||||
"Alternative source": "\u05de\u05e7\u05d5\u05e8 \u05d0\u05dc\u05d8\u05e8\u05e0\u05d8\u05d9\u05d1\u05d9",
|
||||
"Always cohort content-specific discussion topics": "\u05ea\u05de\u05d9\u05d3 \u05e0\u05d5\u05e9\u05d0\u05d9 \u05d3\u05d9\u05d5\u05df \u05dc\u05ea\u05d5\u05db\u05df \u05e1\u05e4\u05e6\u05d9\u05e4\u05d9 \u05e2\u05dc \u05e4\u05d9 \u05e7\u05d1\u05d5\u05e6\u05ea \u05dc\u05d9\u05de\u05d5\u05d3",
|
||||
@@ -223,15 +241,25 @@
|
||||
"Annotation Text": "\u05d4\u05e2\u05e8\u05d4",
|
||||
"Answer hidden": "\u05ea\u05e9\u05d5\u05d1\u05d4 \u05de\u05d5\u05e1\u05ea\u05e8\u05ea",
|
||||
"Answer:": "\u05ea\u05e9\u05d5\u05d1\u05d4:",
|
||||
"Any content that has listed this content as a prerequisite will also have access limitations removed.": "\u05d2\u05dd \u05d1\u05db\u05dc \u05ea\u05d5\u05db\u05df \u05e9\u05e8\u05e9\u05dd \u05ea\u05d5\u05db\u05df \u05d6\u05d4 \u05db\u05d3\u05e8\u05d9\u05e9\u05d4 \u05de\u05d5\u05e7\u05d3\u05de\u05ea \u05d9\u05d5\u05e1\u05e8\u05d5 \u05de\u05d2\u05d1\u05dc\u05d5\u05ea \u05d4\u05d2\u05d9\u05e9\u05d4.",
|
||||
"Are you having trouble finding a team to join?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05ea\u05e7\u05e9\u05d4 \u05dc\u05de\u05e6\u05d5\u05d0 \u05e6\u05d5\u05d5\u05ea \u05dc\u05d4\u05e6\u05d8\u05e8\u05e3 \u05d0\u05dc\u05d9\u05d5?",
|
||||
"Are you sure you want to delete this comment?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05de\u05e2\u05d5\u05e0\u05d9\u05d9\u05df \u05dc\u05de\u05d7\u05d5\u05e7 \u05ea\u05d2\u05d5\u05d1\u05d4 \u05d6\u05d5?",
|
||||
"Are you sure you want to delete this page? This action cannot be undone.": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05de\u05d7\u05d5\u05e7 \u05e2\u05de\u05d5\u05d3 \u05d6\u05d4? \u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d1\u05d8\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5.",
|
||||
"Are you sure you want to delete this post?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05de\u05d7\u05d5\u05e7 \u05d4\u05d5\u05d3\u05e2\u05d4 \u05d6\u05d5?",
|
||||
"Are you sure you want to delete this response?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05de\u05d7\u05d5\u05e7 \u05d0\u05ea \u05d4\u05ea\u05d2\u05d5\u05d1\u05d4?",
|
||||
"Are you sure you want to delete this update?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05de\u05d7\u05d5\u05e7 \u05d0\u05ea \u05e2\u05d3\u05db\u05d5\u05df \u05d6\u05d4?",
|
||||
"Are you sure you want to delete {email} from the course team for \u201c{container}\u201d?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05de\u05d7\u05d5\u05e7 {email} \u05de\u05e6\u05d5\u05d5\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1 \u05e2\u05d1\u05d5\u05e8 \u201c{container}\u201d? ",
|
||||
"Are you sure you want to delete {email} from the library \u201c{container}\u201d?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05de\u05d7\u05d5\u05e7 \u05d0\u05ea {email} \u05de\u05e1\u05e4\u05e8\u05d9\u05d9\u05ea \u201c{container}\u201d?",
|
||||
"Are you sure you want to restrict {email} access to \u201c{container}\u201d?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05d4\u05d2\u05d1\u05d9\u05dc \u05d0\u05ea \u05d2\u05d9\u05e9\u05ea {email} \u05dc\u201c{container}\u201d?",
|
||||
"Are you sure you want to revert to the last published version of the unit? You cannot undo this action.": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05d7\u05d6\u05d5\u05e8 \u05dc\u05d2\u05e8\u05e1\u05d4 \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d4 \u05e9\u05dc \u05d9\u05d7\u05d9\u05d3\u05d4 \u05d6\u05d5, \u05e9\u05e4\u05d5\u05e8\u05e1\u05de\u05d4 ? \u05d0\u05d9\u05e0\u05da \u05d9\u05db\u05d5\u05dc \u05dc\u05d1\u05d8\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5. ",
|
||||
"Are you sure you wish to delete this item. It cannot be reversed!\n\nAlso any content that links/refers to this item will no longer work (e.g. broken images and/or links)": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05de\u05d7\u05d5\u05e7 \u05e4\u05e8\u05d9\u05d8 \u05d6\u05d4. \u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d9\u05d4\u05d9\u05d4 \u05dc\u05e9\u05d7\u05d6\u05e8 \u05d0\u05ea \u05d4\u05e4\u05e2\u05d5\u05dc\u05d4!\n\n\u05d1\u05e0\u05d5\u05e1\u05e3, \u05db\u05dc \u05ea\u05d5\u05db\u05df \u05e9\u05de\u05e7\u05e9\u05e8/\u05de\u05ea\u05d9\u05d9\u05d7\u05e1 \u05dc\u05e4\u05e8\u05d9\u05d8 \u05d6\u05d4 \u05dc\u05d0 \u05d9\u05e2\u05d1\u05d5\u05d3 \u05d9\u05d5\u05ea\u05e8 (\u05dc\u05d3\u05d5\u05d2\u05de\u05d4, \u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05d5/\u05d0\u05d5 \u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd \u05e9\u05d1\u05d5\u05e8\u05d9\u05dd)",
|
||||
"Are you sure?": "\u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7?",
|
||||
"As part of the verification process, you take a photo of both your face and a government-issued photo ID. Our authorization service confirms your identity by comparing the photo you take with the photo on your ID.": "\u05db\u05d7\u05dc\u05e7 \u05de\u05ea\u05d4\u05dc\u05d9\u05da \u05d0\u05d9\u05de\u05d5\u05ea \u05d4\u05d6\u05d4\u05d5\u05ea, \u05d0\u05ea\u05d4 \u05de\u05e6\u05dc\u05dd \u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc \u05d4\u05e4\u05e8\u05e6\u05d5\u05e3 \u05e9\u05dc\u05da \u05d5\u05d2\u05dd \u05e9\u05dc \u05ea\u05e2\u05d5\u05d3\u05d4 \u05de\u05d6\u05d4\u05d4 \u05e9\u05dc\u05da \u05e9\u05d4\u05d5\u05e0\u05e4\u05e7\u05d4 \u05e2\u05dc \u05d9\u05d3\u05d9 \u05d4\u05de\u05de\u05e9\u05dc\u05d4. \u05e9\u05d9\u05e8\u05d5\u05ea \u05d4\u05d0\u05d9\u05de\u05d5\u05ea \u05e9\u05dc\u05da\u05e0\u05d5 \u05de\u05d0\u05e9\u05e8 \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05e9\u05d5\u05d5\u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05d0\u05ea\u05d4 \u05de\u05e6\u05dc\u05dd \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05d1\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05d6\u05d4\u05d4 \u05e9\u05dc\u05da. ",
|
||||
"Assign students to cohorts by uploading a CSV file": "\u05d4\u05e7\u05e6\u05d4 \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05dc\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05dc\u05d9\u05de\u05d5\u05d3 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05e2\u05dc\u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 CSV",
|
||||
"Assign students to cohorts by uploading a CSV file.": "\u05d4\u05e7\u05e6\u05d0\u05ea \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05dc\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05e2\u05dc \u05d9\u05d3\u05d9 \u05d4\u05e2\u05dc\u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 CSV.",
|
||||
"Assignment Type Name": "\u05e9\u05dd \u05e1\u05d5\u05d2 \u05de\u05d8\u05dc\u05d4",
|
||||
"Associated Content Group": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df \u05de\u05e7\u05d5\u05e9\u05e8\u05ea",
|
||||
"Attribution": "\u05d9\u05d7\u05d5\u05e1",
|
||||
"Author": "\u05de\u05d7\u05d1\u05e8",
|
||||
"Automatic": "\u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9\u05ea",
|
||||
"Average": "\u05de\u05de\u05d5\u05e6\u05e2",
|
||||
@@ -239,6 +267,7 @@
|
||||
"Back to sign in": "\u05d1\u05d7\u05d6\u05e8\u05d4 \u05dc\u05db\u05e0\u05d9\u05e1\u05d4 \u05dc\u05d7\u05e9\u05d1\u05d5\u05df",
|
||||
"Back to {platform} FAQs": "\u05d7\u05d6\u05e8\u05d4 \u05dc\u05e9\u05d0\u05dc\u05d5\u05ea \u05d4\u05e0\u05e4\u05d5\u05e6\u05d5\u05ea \u05e9\u05dc {platform}",
|
||||
"Background color": "\u05e6\u05d1\u05e2 \u05e8\u05e7\u05e2",
|
||||
"Basic": "\u05d1\u05e1\u05d9\u05e1\u05d9",
|
||||
"Be sure your entire face is inside the frame": "\u05ea\u05d4\u05d9\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05db\u05dc \u05d4\u05e4\u05e0\u05d9\u05dd \u05e0\u05db\u05e0\u05e1\u05d9\u05dd \u05dc\u05de\u05e1\u05d2\u05e8\u05ea.",
|
||||
"Before proceeding, please confirm that your details match": "\u05d1\u05d8\u05e8\u05dd \u05ea\u05de\u05e9\u05d9\u05da, \u05d0\u05e0\u05d0 \u05d5\u05d3\u05d0 \u05db\u05d9 \u05d4\u05e4\u05e8\u05d8\u05d9\u05dd \u05ea\u05d5\u05d0\u05de\u05d9\u05dd",
|
||||
"Before you upgrade to a certificate track, you must activate your account.": "\u05dc\u05e4\u05e0\u05d9 \u05e9\u05ea\u05e9\u05d3\u05e8\u05d2 \u05dc\u05de\u05e1\u05dc\u05d5\u05dc \u05ea\u05e2\u05d5\u05d3\u05d4, \u05e2\u05dc\u05d9\u05da \u05dc\u05d4\u05e4\u05e2\u05d9\u05dc \u05d0\u05ea \u05d7\u05e9\u05d1\u05d5\u05e0\u05da.",
|
||||
@@ -268,6 +297,7 @@
|
||||
"Cancel team updating.": "\u05d1\u05d8\u05dc \u05e2\u05d3\u05db\u05d5\u05df \u05e6\u05d5\u05d5\u05ea.",
|
||||
"Cannot delete when in use by a unit": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05de\u05d7\u05d5\u05e7 \u05db\u05d0\u05e9\u05e8 \u05e0\u05de\u05e6\u05d0 \u05d1\u05e9\u05d9\u05de\u05d5\u05e9 \u05e9\u05dc \u05d9\u05d7\u05d9\u05d3\u05d4",
|
||||
"Cannot delete when in use by an experiment": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05de\u05d7\u05d5\u05e7 \u05db\u05d0\u05e9\u05e8 \u05e0\u05de\u05e6\u05d0 \u05d1\u05e9\u05d9\u05de\u05d5\u05e9 \u05e2\u05dc \u05d9\u05d3\u05d9 \u05e0\u05d9\u05e1\u05d5\u05d9",
|
||||
"Cannot drop more <%= types %> assignments than are assigned.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05d5\u05e8\u05d9\u05d3 \u05d9\u05d5\u05ea\u05e8 \u05de-<%= types %> \u05de\u05e9\u05d9\u05de\u05d5\u05ea \u05de\u05d0\u05dc\u05d5 \u05e9\u05db\u05d1\u05e8 \u05de\u05d5\u05e7\u05e6\u05d5\u05ea.",
|
||||
"Caption": "\u05db\u05d9\u05ea\u05d5\u05d1",
|
||||
"Caution: The last published version of this unit is live. By publishing changes you will change the student experience.": "\u05d6\u05d4\u05d9\u05e8\u05d5\u05ea: \u05d4\u05d2\u05e8\u05e1\u05d0 \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d4 \u05e9\u05e4\u05d5\u05e8\u05e1\u05de\u05d4 \u05dc\u05d9\u05d7\u05d9\u05d3\u05d4 \u05d6\u05d5 \u05e2\u05d3\u05d9\u05d9\u05df \u05d1\u05d0\u05d5\u05d5\u05d9\u05e8. \u05e4\u05e8\u05e1\u05d5\u05dd \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05d9\u05d5\u05d1\u05d9\u05dc \u05dc\u05e9\u05d9\u05e0\u05d5\u05d9 \u05d7\u05d5\u05d5\u05d9\u05ea \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8. ",
|
||||
"Cell": "\u05ea\u05d0",
|
||||
@@ -283,13 +313,18 @@
|
||||
"Certificate Signatories": "\u05d7\u05ea\u05d9\u05de\u05d5\u05ea \u05e2\u05dc \u05d4\u05ea\u05e2\u05d5\u05d3\u05d4",
|
||||
"Certificate Signatory Configuration": "\u05d4\u05d2\u05d3\u05e8\u05ea \u05ea\u05e6\u05d5\u05e8\u05d4 \u05e9\u05dc \u05d7\u05ea\u05d9\u05de\u05d4 \u05e2\u05dc \u05d4\u05ea\u05e2\u05d5\u05d3\u05d4",
|
||||
"Certificate has been successfully invalidated for <%= user %>.": "\u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05e9\u05dc <%= user %> \u05e0\u05e4\u05e1\u05dc\u05d4 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4.",
|
||||
"Certificate name is required.": "\u05e9\u05dd \u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4.",
|
||||
"Certificate of <%= user %> has already been invalidated. Please check your spelling and retry.": "\u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05e9\u05dc <%= user %> \u05db\u05d1\u05e8 \u05e0\u05e4\u05e1\u05dc\u05d4. \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05d4\u05d0\u05d9\u05d5\u05ea \u05d5\u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1.",
|
||||
"Change Enrollment": "\u05e9\u05d9\u05e0\u05d5\u05d9 \u05d4\u05e8\u05e9\u05de\u05d4",
|
||||
"Change Manually": "\u05e9\u05e0\u05d4 \u05d9\u05d3\u05e0\u05d9\u05ea",
|
||||
"Change My Email Address": "\u05e9\u05e0\u05d4 \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05e9\u05dc\u05d9",
|
||||
"Change image": "\u05e9\u05e0\u05d4 \u05ea\u05de\u05d5\u05e0\u05d4",
|
||||
"Change the settings for {display_name}": "\u05e9\u05e0\u05d4 \u05d0\u05ea \u05d4\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 {display_name}",
|
||||
"Chapter Asset": "\u05e0\u05db\u05e1 \u05d4\u05e4\u05e8\u05e7",
|
||||
"Chapter Name": "\u05e9\u05dd \u05d4\u05e4\u05e8\u05e7",
|
||||
"Chapter information": "\u05de\u05d9\u05d3\u05e2 \u05e2\u05dc \u05d4\u05e4\u05e8\u05e7",
|
||||
"Chapter name and asset_path are both required": "\u05e9\u05dd \u05d4\u05e4\u05e8\u05e7 \u05d5-asset_path \u05d4\u05dd \u05e9\u05d3\u05d5\u05ea \u05d7\u05d5\u05d1\u05d4",
|
||||
"Chapter name is required": "\u05e9\u05dd \u05d4\u05e4\u05e8\u05e7 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
|
||||
"Check Your Email": "\u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05d4\u05d3\u05d5\u05d0\u05e8 \u05d4\u05d0\u05dc\u05e7\u05d8\u05e8\u05d5\u05e0\u05d9 \u05e9\u05dc\u05da",
|
||||
"Check the box to remove %(count)s flag.": [
|
||||
"\u05e1\u05de\u05df \u05d0\u05ea \u05d4\u05ea\u05d9\u05d1\u05d4 \u05db\u05d3\u05d9 \u05dc\u05d4\u05e1\u05d9\u05e8 \u05d3\u05d2\u05dc %(count)s.",
|
||||
@@ -312,6 +347,7 @@
|
||||
"Choose a .csv file": "\u05d1\u05d7\u05e8 \u05e7\u05d5\u05d1\u05e5 CSV.",
|
||||
"Choose a content group to associate": "\u05d1\u05d7\u05e8 \u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df \u05dc\u05e7\u05e9\u05e8",
|
||||
"Choose mode": "\u05d1\u05d7\u05e8 \u05de\u05e6\u05d1",
|
||||
"Choose new file": "\u05d1\u05d7\u05e8 \u05e7\u05d5\u05d1\u05e5 \u05d7\u05d3\u05e9",
|
||||
"Choose one": "\u05d1\u05d7\u05e8 \u05d0\u05d7\u05d3",
|
||||
"Choose your institution from the list below:": "\u05d1\u05d7\u05e8 \u05d0\u05ea \u05d4\u05de\u05d5\u05e1\u05d3 \u05e9\u05dc\u05da \u05de\u05d4\u05e8\u05e9\u05d9\u05de\u05d4 \u05e9\u05dc\u05d4\u05dc\u05df:",
|
||||
"Circle": "\u05e2\u05d9\u05d2\u05d5\u05dc",
|
||||
@@ -355,22 +391,29 @@
|
||||
"Commentary": "\u05d4\u05e2\u05e8\u05d5\u05ea",
|
||||
"Common Problem Types": "\u05e1\u05d5\u05d2\u05d9 \u05d1\u05e2\u05d9\u05d5\u05ea \u05e0\u05e4\u05d5\u05e6\u05d5\u05ea",
|
||||
"Community TA": "\u05e2\u05d5\u05d6\u05e8 \u05d4\u05d5\u05e8\u05d0\u05d4 \u05e7\u05d4\u05d9\u05dc\u05ea\u05d9",
|
||||
"Component": "\u05e8\u05db\u05d9\u05d1",
|
||||
"Configure": "\u05d4\u05d2\u05d3\u05e8",
|
||||
"Confirm": "\u05d0\u05e9\u05e8",
|
||||
"Confirm Timed Transcript": "\u05d0\u05e9\u05e8 \u05ea\u05de\u05dc\u05d9\u05dc \u05de\u05ea\u05d5\u05d6\u05de\u05df",
|
||||
"Congratulations! You are now verified on %(platformName)s!": "\u05d1\u05e8\u05db\u05d5\u05ea\u05d9\u05e0\u05d5! \u05e2\u05db\u05e9\u05d9\u05d5 \u05d6\u05d4\u05d5\u05ea\u05da \u05de\u05d0\u05d5\u05de\u05ea\u05ea \u05d1-%(platformName)s!",
|
||||
"Constrain proportions": "\u05d0\u05dc\u05e5 \u05e4\u05e8\u05d5\u05e4\u05d5\u05e8\u05e6\u05d9\u05d5\u05ea",
|
||||
"Contains staff only content": "\u05de\u05db\u05d9\u05dc \u05ea\u05d5\u05db\u05df \u05d4\u05de\u05d5\u05d2\u05d1\u05dc \u05dc\u05e6\u05d5\u05d5\u05ea \u05d1\u05dc\u05d1\u05d3",
|
||||
"Contains {count} group": [
|
||||
"\u05db\u05d5\u05dc\u05dc \u05e7\u05d1\u05d5\u05e6\u05d4 {count}",
|
||||
"\u05db\u05d5\u05dc\u05dc {count} \u05e7\u05d1\u05d5\u05e6\u05d5\u05ea"
|
||||
],
|
||||
"Content Group ID": "\u05de\u05d6\u05d4\u05d4 \u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df",
|
||||
"Content Group Name": "\u05e9\u05dd \u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df",
|
||||
"Content-Specific Discussion Topics": "\u05e0\u05d5\u05e9\u05d0\u05d9 \u05d3\u05d9\u05d5\u05df \u05dc\u05ea\u05d5\u05db\u05df \u05e1\u05e4\u05e6\u05d9\u05e4\u05d9",
|
||||
"Copy": "\u05d4\u05e2\u05ea\u05e7",
|
||||
"Copy Email To Editor": "\u05d4\u05e2\u05ea\u05e7 \u05db\u05ea\u05d5\u05d1\u05ea \u05d3\u05d5\u05d0\u05e8 \u05d0\u05dc\u05e7\u05d8\u05e8\u05d5\u05e0\u05d9 \u05dc\u05e2\u05d5\u05e8\u05da",
|
||||
"Copy row": "\u05d4\u05e2\u05ea\u05e7 \u05e9\u05d5\u05e8\u05d4",
|
||||
"Correct failed component": "\u05ea\u05e7\u05df \u05e8\u05db\u05d9\u05d1 \u05db\u05d5\u05e9\u05dc",
|
||||
"Could not find Certificate Exception in white list. Please refresh the page and try again": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05de\u05e6\u05d5\u05d0 \u05d7\u05e8\u05d9\u05d2\u05ea \u05ea\u05e2\u05d5\u05d3\u05d4 \u05d1\u05e8\u05e9\u05d9\u05de\u05d4 \u05d4\u05d1\u05d8\u05d5\u05d7\u05d4. \u05e8\u05e2\u05e0\u05df \u05d0\u05ea \u05d4\u05d3\u05e3 \u05d5\u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1",
|
||||
"Could not find Certificate Invalidation in the list. Please refresh the page and try again": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05de\u05e6\u05d5\u05d0 \u05e4\u05e1\u05d9\u05dc\u05ea \u05ea\u05e2\u05d5\u05d3\u05d4 \u05d1\u05e8\u05e9\u05d9\u05de\u05d4. \u05e8\u05e2\u05e0\u05df \u05d0\u05ea \u05d4\u05d3\u05e3 \u05d5\u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1",
|
||||
"Could not find the specified string.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05d0\u05ea\u05e8 \u05d0\u05ea \u05d4\u05e9\u05e8\u05e9\u05d5\u05e8 \u05d4\u05de\u05d3\u05d5\u05d9\u05e7",
|
||||
"Could not find users associated with the following identifiers:": "\u05dc\u05d0 \u05d4\u05e6\u05dc\u05d7\u05ea\u05d9 \u05dc\u05de\u05e6\u05d5\u05d0 \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d4\u05de\u05e9\u05d5\u05d9\u05d9\u05db\u05d9\u05dd \u05dc\u05de\u05d6\u05d4\u05d9\u05dd \u05d4\u05d1\u05d0\u05d9\u05dd:",
|
||||
"Could not parse certificate JSON. %(message)s": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05e4\u05e6\u05dc JSON \u05e9\u05dc \u05ea\u05e2\u05d5\u05d3\u05d4. %(message)s",
|
||||
"Could not retrieve payment information": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d0\u05d7\u05d6\u05e8 \u05d0\u05ea \u05e4\u05e8\u05d8\u05d9 \u05ea\u05e9\u05dc\u05d5\u05dd",
|
||||
"Could not submit order": "\u05dc\u05d0 \u05d9\u05db\u05d5\u05dc\u05ea\u05d9 \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05d4\u05d6\u05de\u05e0\u05d4",
|
||||
"Could not submit photos": "\u05dc\u05d0 \u05d9\u05db\u05d5\u05dc\u05ea\u05d9 \u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d5\u05ea",
|
||||
@@ -378,9 +421,12 @@
|
||||
"Country of residence": "\u05d0\u05e8\u05e5 \u05de\u05d2\u05d5\u05e8\u05d9\u05dd",
|
||||
"Country or Region": "\u05de\u05d3\u05d9\u05e0\u05d4 \u05d0\u05d5 \u05d0\u05d6\u05d5\u05e8",
|
||||
"Course": "\u05e7\u05d5\u05e8\u05e1",
|
||||
"Course Code": "\u05e7\u05d5\u05d3 \u05e7\u05d5\u05e8\u05e1",
|
||||
"Course Credit Requirements": "\u05d3\u05e8\u05d9\u05e9\u05d5\u05ea \u05dc\u05e0\u05e7\u05d5\u05d3\u05d5\u05ea \u05d6\u05db\u05d5\u05ea \u05d1\u05e7\u05d5\u05e8\u05e1",
|
||||
"Course End": "\u05e1\u05d9\u05d5\u05dd \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
"Course Handouts": "\u05d3\u05e4\u05d9 \u05de\u05d9\u05d3\u05e2 \u05e9\u05dc \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
"Course ID": "\u05de\u05d6\u05d4\u05d4 \u05e7\u05d5\u05e8\u05e1",
|
||||
"Course Index": "\u05d0\u05d9\u05e0\u05d3\u05e7\u05e1 \u05e7\u05d5\u05e8\u05e1",
|
||||
"Course Key": "\u05de\u05e4\u05ea\u05d7 \u05e7\u05d5\u05e8\u05e1",
|
||||
"Course Number": "\u05de\u05e1\u05e4\u05e8 \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
"Course Number Override": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05de\u05e1\u05e4\u05e8 \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
@@ -388,9 +434,11 @@
|
||||
"Course Start": "\u05ea\u05d7\u05d9\u05dc\u05ea \u05e7\u05d5\u05e8\u05e1",
|
||||
"Course Title": "\u05db\u05d5\u05ea\u05e8\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
"Course Title Override": "\u05d1\u05d9\u05d8\u05d5\u05dc \u05db\u05d5\u05ea\u05e8\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
"Course pacing cannot be changed once a course has started.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05e9\u05e0\u05d5\u05ea \u05d0\u05ea \u05e7\u05e6\u05d1 \u05d4\u05e7\u05d5\u05e8\u05e1 \u05dc\u05d0\u05d7\u05e8 \u05d4\u05ea\u05d7\u05dc\u05ea\u05d5.",
|
||||
"Course title": "\u05db\u05d5\u05ea\u05e8\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
"Course-Wide Discussion Topics": "\u05e0\u05d5\u05e9\u05d0\u05d9 \u05d3\u05d9\u05d5\u05df \u05db\u05dc\u05dc \u05e7\u05d5\u05e8\u05e1\u05d9\u05d9\u05dd",
|
||||
"Create": "\u05e6\u05d5\u05e8",
|
||||
"Create Re-run": "\u05e6\u05d5\u05e8 \u05d4\u05e8\u05e6\u05d4 \u05e0\u05d5\u05e1\u05e4\u05ea",
|
||||
"Create a %(link_start)sMozilla Backpack%(link_end)s account, or log in to your existing account": "\u05e6\u05d5\u05e8 \u05d7\u05e9\u05d1\u05d5\u05df %(link_start)sMozilla Backpack%(link_end)s \u05d0\u05d5 \u05d4\u05d9\u05db\u05e0\u05e1 \u05dc\u05d7\u05e9\u05d1\u05d5\u05df \u05d4\u05e7\u05d9\u05d9\u05dd \u05e9\u05dc\u05da",
|
||||
"Create a New Team": "\u05e6\u05d5\u05e8 \u05e6\u05d5\u05d5\u05ea \u05d7\u05d3\u05e9",
|
||||
"Create a content group": "\u05e6\u05d5\u05e8 \u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df",
|
||||
@@ -402,6 +450,7 @@
|
||||
"Create team.": "\u05e6\u05d5\u05e8 \u05e6\u05d5\u05d5\u05ea.",
|
||||
"Create your account": "\u05e6\u05d5\u05e8 \u05d0\u05ea \u05d7\u05e9\u05d1\u05d5\u05e0\u05da",
|
||||
"Creating missing groups": "\u05d9\u05e6\u05d9\u05e8\u05d4 \u05e9\u05dc \u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05d7\u05e1\u05e8\u05d5\u05ea",
|
||||
"Creative Commons": "\u05e7\u05e8\u05d9\u05d0\u05d8\u05d9\u05d1 \u05e7\u05d5\u05de\u05d5\u05e0\u05e1",
|
||||
"Creative Commons licensed content, with terms as follow:": "\u05ea\u05d5\u05db\u05df \u05d1\u05e8\u05d9\u05e9\u05d9\u05d5\u05df \u05e9\u05dc Creative Commons, \u05db\u05e4\u05d5\u05e3 \u05dc\u05ea\u05e0\u05d0\u05d9\u05dd \u05d4\u05d1\u05d0\u05d9\u05dd:",
|
||||
"Crossed out items have been refunded.": "\u05ea\u05e9\u05dc\u05d5\u05dd \u05d4\u05d5\u05d7\u05d6\u05e8 \u05e2\u05d1\u05d5\u05e8 \u05e4\u05e8\u05d9\u05d8\u05d9\u05dd \u05e9\u05e0\u05de\u05d7\u05e7\u05d5 ",
|
||||
"Current Role:": "\u05ea\u05e4\u05e7\u05d9\u05d3 \u05e0\u05d5\u05db\u05d7\u05d9:",
|
||||
@@ -413,13 +462,17 @@
|
||||
"Cut": "\u05d2\u05d6\u05d5\u05e8",
|
||||
"Cut row": "\u05d2\u05d6\u05d5\u05e8 \u05e9\u05d5\u05e8\u05d4",
|
||||
"Date": "\u05ea\u05d0\u05e8\u05d9\u05da",
|
||||
"Date Added": "\u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05d4\u05d5\u05e1\u05e4\u05d4",
|
||||
"Date Added": "\u05e0\u05d5\u05e1\u05e3 \u05ea\u05d0\u05e8\u05d9\u05da",
|
||||
"Date added": "\u05d4\u05d5\u05e1\u05e3 \u05ea\u05d0\u05e8\u05d9\u05da",
|
||||
"Date posted": "\u05ea\u05d0\u05e8\u05d9\u05da \u05e4\u05e8\u05e1\u05d5\u05dd",
|
||||
"Deactivate": "\u05d1\u05d8\u05dc \u05d4\u05e4\u05e2\u05dc\u05d4",
|
||||
"Decrease indent": "\u05d4\u05e7\u05d8\u05df \u05db\u05e0\u05d9\u05e1\u05d4",
|
||||
"Default": "\u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc",
|
||||
"Default Timed Transcript": "\u05ea\u05de\u05dc\u05d9\u05dc \u05de\u05ea\u05d5\u05d6\u05de\u05df \u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc",
|
||||
"Delete": "\u05de\u05d7\u05e7",
|
||||
"Delete \"<%= signatoryName %>\" from the list of signatories?": "\u05dc\u05de\u05d7\u05d5\u05e7 \u05d0\u05ea \"<%= signatoryName %>\" \u05de\u05e8\u05e9\u05d9\u05de\u05ea \u05d4\u05d7\u05ea\u05d9\u05de\u05d5\u05ea?",
|
||||
"Delete File Confirmation": "\u05d0\u05d9\u05e9\u05d5\u05e8 \u05dc\u05de\u05d7\u05d9\u05e7\u05ea \u05d4\u05e7\u05d5\u05d1\u05e5",
|
||||
"Delete Page Confirmation": "\u05d0\u05d9\u05e9\u05d5\u05e8 \u05de\u05d7\u05d9\u05e7\u05ea \u05e2\u05de\u05d5\u05d3",
|
||||
"Delete Team": "\u05de\u05d7\u05e7 \u05e6\u05d5\u05d5\u05ea",
|
||||
"Delete column": "\u05de\u05d7\u05e7 \u05d8\u05d5\u05e8",
|
||||
"Delete row": "\u05de\u05d7\u05e7 \u05e9\u05d5\u05e8\u05d4",
|
||||
@@ -427,16 +480,24 @@
|
||||
"Delete table": "\u05de\u05d7\u05e7 \u05d8\u05d1\u05dc\u05d4",
|
||||
"Delete the user, {username}": "\u05de\u05d7\u05e7 \u05d0\u05ea \u05d4\u05de\u05e9\u05ea\u05de\u05e9, {username}",
|
||||
"Delete this %(item_display_name)s?": "\u05de\u05d7\u05e7 \u05d0\u05ea \u05d4%(item_display_name)s?",
|
||||
"Delete this %(xblock_type)s (and prerequisite)?": "\u05d4\u05d0\u05dd \u05dc\u05de\u05d7\u05d5\u05e7 %(xblock_type)s \u05d6\u05d4 (\u05d5\u05d0\u05ea \u05d4\u05d3\u05e8\u05d9\u05e9\u05d4 \u05d4\u05de\u05d5\u05e7\u05d3\u05de\u05ea)?",
|
||||
"Delete this %(xblock_type)s?": "\u05de\u05d7\u05e7 \u05d0\u05ea %(xblock_type)s \u05d6\u05d4?",
|
||||
"Delete this asset": "\u05de\u05d7\u05e7 \u05e0\u05db\u05e1 \u05d6\u05d4",
|
||||
"Delete this team?": "\u05dc\u05de\u05d7\u05d5\u05e7 \u05e6\u05d5\u05d5\u05ea \u05d6\u05d4?",
|
||||
"Delete \u201c<%= name %>\u201d?": "\u05de\u05d7\u05e7 \u201c<%= name %>\u201d?",
|
||||
"Deleted Content Group": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df \u05e0\u05de\u05d7\u05e7\u05d4",
|
||||
"Deleting": "\u05de\u05d5\u05d7\u05e7",
|
||||
"Deleting a team is permanent and cannot be undone. All members are removed from the team, and team discussions can no longer be accessed.": "\u05de\u05d7\u05d9\u05e7\u05ea \u05e6\u05d5\u05d5\u05ea \u05d4\u05d9\u05d0 \u05e7\u05d1\u05d5\u05e2\u05d4 \u05d5\u05d0\u05d9\u05df \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05dc\u05d1\u05d8\u05dc \u05d0\u05d5\u05ea\u05d4. \u05db\u05dc \u05d4\u05d7\u05d1\u05e8\u05d9\u05dd \u05d4\u05d5\u05e1\u05e8\u05d5 \u05de\u05d4\u05e6\u05d5\u05d5\u05ea, \u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d2\u05e9\u05ea \u05d9\u05d5\u05ea\u05e8 \u05dc\u05d3\u05d9\u05d5\u05e0\u05d9 \u05d4\u05e6\u05d5\u05d5\u05ea.",
|
||||
"Deleting a textbook cannot be undone and once deleted any reference to it in your courseware's navigation will also be removed.": "\u05de\u05d7\u05d9\u05e7\u05ea \u05e1\u05e4\u05e8 \u05dc\u05d9\u05de\u05d5\u05d3 \u05d0\u05d9\u05e0\u05e0\u05d4 \u05d4\u05e4\u05d9\u05db\u05d4 \u05d5\u05d1\u05e8\u05d2\u05e2 \u05e9\u05ea\u05d1\u05d5\u05e6\u05e2 \u05de\u05d7\u05d9\u05e7\u05d4, \u05db\u05dc \u05d4\u05e4\u05e0\u05d9\u05d9\u05d4 \u05de\u05d4\u05dc\u05d5\u05de\u05d3\u05d4 \u05dc\u05e1\u05e4\u05e8 \u05ea\u05d9\u05de\u05d7\u05e7 \u05d2\u05dd \u05db\u05df. ",
|
||||
"Deleting this %(item_display_name)s is permanent and cannot be undone.": "\u05de\u05d7\u05d9\u05e7\u05ea %(item_display_name)s \u05d4\u05d9\u05d0 \u05e7\u05d1\u05d5\u05e2\u05d4 \u05d5\u05d0\u05d9\u05e0\u05d4 \u05d4\u05e4\u05d9\u05db\u05d4.",
|
||||
"Deleting this %(xblock_type)s is permanent and cannot be undone.": "\u05de\u05d7\u05d9\u05e7\u05ea %(xblock_type)s \u05d6\u05d4 \u05d4\u05d9\u05e0\u05d4 \u05e7\u05d1\u05d5\u05e2\u05d4 \u05d5\u05d0\u05d9\u05e0\u05d4 \u05d4\u05e4\u05d9\u05db\u05d4.",
|
||||
"Deprecated": "\u05de\u05d2\u05d5\u05e0\u05d4",
|
||||
"Description": "\u05ea\u05d9\u05d0\u05d5\u05e8",
|
||||
"Description of the certificate": "\u05ea\u05d9\u05d0\u05d5\u05e8 \u05d4\u05ea\u05e2\u05d5\u05d3\u05d4",
|
||||
"Dimensions": "\u05de\u05d9\u05de\u05d3\u05d9\u05dd",
|
||||
"Disc": "Disc",
|
||||
"Discard Changes": "\u05d4\u05ea\u05e2\u05dc\u05dd \u05de\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd",
|
||||
"Discarding Changes": "\u05de\u05ea\u05e2\u05dc\u05dd \u05de\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd",
|
||||
"Discussion": "\u05d3\u05d9\u05d5\u05df",
|
||||
"Discussion admins, moderators, and TAs can make their posts visible to all students or specify a single cohort.": "\u05de\u05e0\u05d4\u05dc\u05d9 \u05d3\u05d9\u05d5\u05df, \u05de\u05e0\u05d7\u05d9\u05dd \u05d5\u05e2\u05d5\u05d6\u05e8\u05d9 \u05d4\u05d5\u05e8\u05d0\u05d4 \u05d9\u05db\u05d5\u05dc\u05d9\u05dd \u05dc\u05d4\u05e4\u05d5\u05da \u05d0\u05ea \u05d4\u05e4\u05d5\u05e1\u05d8\u05d9\u05dd \u05e9\u05dc\u05d4\u05dd \u05dc\u05d2\u05dc\u05d5\u05d9\u05d9\u05dd \u05dc\u05db\u05dc \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05d0\u05d5 \u05dc\u05d4\u05d2\u05d1\u05d9\u05dc\u05dd \u05dc\u05e7\u05d1\u05d5\u05e6\u05d4 \u05e1\u05e4\u05e6\u05d9\u05e4\u05d9\u05ea \u05e9\u05dc \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd. ",
|
||||
"Discussion topics; currently listing: ": "\u05e0\u05d5\u05e9\u05d0\u05d9\u05dd \u05dc\u05d3\u05d9\u05d5\u05df: \u05db\u05e8\u05d2\u05e2 \u05e8\u05e9\u05d5\u05de\u05d9\u05dd: ",
|
||||
@@ -468,6 +529,7 @@
|
||||
"Due Time in UTC:": "\u05d6\u05de\u05df \u05ea\u05d0\u05e8\u05d9\u05da \u05d9\u05e2\u05d3 \u05d1UTC:",
|
||||
"Due date cannot be before start date.": "\u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05e1\u05d9\u05d5\u05dd \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05e7\u05d3\u05d9\u05dd \u05d0\u05ea \u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05d4\u05ea\u05d7\u05dc\u05d4.",
|
||||
"Due:": "\u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05d2\u05e9\u05d4",
|
||||
"Duplicating": "\u05de\u05e9\u05db\u05e4\u05dc",
|
||||
"Duration": "\u05de\u05e9\u05da \u05d6\u05de\u05df",
|
||||
"Duration (sec)": "\u05de\u05e9\u05da \u05d6\u05de\u05df (\u05e9\u05e0\u05d9\u05d5\u05ea)",
|
||||
"Earned %(created)s.": "\u05d6\u05db\u05d9\u05ea \u05d1-%(created)s.",
|
||||
@@ -483,10 +545,14 @@
|
||||
"Edit Your Name": "\u05e2\u05e8\u05d5\u05da \u05d0\u05ea \u05e9\u05de\u05da",
|
||||
"Edit post title": "\u05e2\u05e8\u05d5\u05da \u05d0\u05ea \u05db\u05d5\u05ea\u05e8\u05ea \u05d4\u05e4\u05d5\u05e1\u05d8",
|
||||
"Edit the name": "\u05e2\u05e8\u05d5\u05da \u05d0\u05ea \u05d4\u05e9\u05dd",
|
||||
"Edit this certificate?": "\u05dc\u05e2\u05e8\u05d5\u05da \u05ea\u05e2\u05d5\u05d3\u05d4 \u05d6\u05d5?",
|
||||
"Editable": "\u05e0\u05d9\u05ea\u05df \u05dc\u05e2\u05e8\u05d9\u05db\u05d4",
|
||||
"Editing comment": "\u05e2\u05d5\u05e8\u05da \u05d4\u05e2\u05e8\u05d4",
|
||||
"Editing post": "\u05e2\u05d5\u05e8\u05da \u05e4\u05d5\u05e1\u05d8",
|
||||
"Editing response": "\u05e2\u05d5\u05e8\u05da \u05ea\u05d2\u05d5\u05d1\u05d4",
|
||||
"Editing visibility for: %(title)s": "\u05e2\u05d5\u05e8\u05da \u05e0\u05e8\u05d0\u05d5\u05ea: %(title)s",
|
||||
"Editing: %(title)s": "\u05e2\u05d5\u05e8\u05da: %(title)s",
|
||||
"Editor": "\u05e2\u05d5\u05e8\u05da",
|
||||
"Education Completed": "\u05e8\u05de\u05ea \u05d4\u05e9\u05db\u05dc\u05d4 \u05e9\u05d4\u05d5\u05e9\u05dc\u05de\u05d4",
|
||||
"Email": "\u05d3\u05d5\u05d0\u05e8 \u05d0\u05dc\u05e7\u05d8\u05e8\u05d5\u05e0\u05d9",
|
||||
"Email Address": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d3\u05d5\u05d0\u05e8 \u05d0\u05dc\u05e7\u05d8\u05e8\u05d5\u05e0\u05d9",
|
||||
@@ -523,6 +589,7 @@
|
||||
"Entrance exam state is being deleted for student '{student_id}'.": "\u05de\u05e6\u05d1 \u05d1\u05d7\u05d9\u05e0\u05ea \u05d4\u05db\u05e0\u05d9\u05e1\u05d4 \u05e0\u05de\u05d7\u05e7 \u05e2\u05d1\u05d5\u05e8 \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 '{student_id}'.",
|
||||
"Error": "\u05e9\u05d2\u05d9\u05d0\u05d4",
|
||||
"Error adding students.": "\u05d8\u05e2\u05d5\u05ea \u05d1\u05d4\u05d5\u05e1\u05e4\u05ea \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd",
|
||||
"Error adding user": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d4\u05d5\u05e1\u05e4\u05ea \u05de\u05e9\u05ea\u05de\u05e9",
|
||||
"Error adding/removing users as beta testers.": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d4\u05d5\u05e1\u05e4\u05d4 / \u05d4\u05e1\u05e8\u05d4 \u05e9\u05dc \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05db\u05d1\u05d5\u05d3\u05e7\u05d9 \u05d1\u05d8\u05d0.",
|
||||
"Error changing user's permissions.": "\u05d8\u05e2\u05d5\u05ea \u05d1\u05e9\u05d9\u05e0\u05d5\u05d9 \u05d0\u05d9\u05e9\u05d5\u05e8\u05d9 \u05de\u05e9\u05ea\u05de\u05e9",
|
||||
"Error deleting entrance exam state for student '{student_id}'. Make sure student identifier is correct.": "\u05d8\u05e2\u05d5\u05ea \u05d1\u05de\u05d7\u05d9\u05e7\u05d4 \u05e9\u05dc \u05de\u05e6\u05d1 \u05de\u05d1\u05d7\u05df \u05d4\u05db\u05e0\u05d9\u05e1\u05d4 \u05e2\u05d1\u05d5\u05e8 \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 '{student_id}'. \u05d5\u05d3\u05d0 \u05e9\u05de\u05d6\u05d4\u05d4 \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05e0\u05db\u05d5\u05df. ",
|
||||
@@ -540,7 +607,9 @@
|
||||
"Error getting student list.": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05de\u05e9\u05d9\u05db\u05d4 \u05e8\u05e9\u05d9\u05de\u05ea \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd.",
|
||||
"Error getting student progress url for '<%= student_id %>'. Make sure that the student identifier is spelled correctly.": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e7\u05d1\u05dc\u05ea url \u05d4\u05ea\u05e7\u05d3\u05de\u05d5\u05ea \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05e2\u05d1\u05d5\u05e8 '<%= student_id %>'. \u05d5\u05d3\u05d0 \u05e9\u05de\u05d6\u05d4\u05d4 \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05de\u05d0\u05d5\u05d9\u05ea \u05d1\u05e6\u05d5\u05e8\u05d4 \u05e0\u05db\u05d5\u05e0\u05d4.",
|
||||
"Error getting task history for problem '<%= problem_id %>' and student '<%= student_id %>'. Make sure that the problem and student identifiers are complete and correct.": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d6\u05de\u05df \u05e7\u05d1\u05dc\u05ea \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d9\u05ea \u05de\u05e9\u05d9\u05de\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 \u05d1\u05e2\u05d9\u05d4 '<%= problem_id %>' \u05e9\u05dc \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 '<%= student_id %>'. \u05d5\u05d3\u05d0 \u05e9\u05de\u05d6\u05d4\u05d4 \u05d4\u05d1\u05e2\u05d9\u05d4 \u05d5\u05d4\u05ea\u05dc\u05de\u05d9\u05d3 \u05d4\u05dd \u05de\u05dc\u05d0\u05d9\u05dd \u05d5\u05e0\u05db\u05d5\u05e0\u05d9\u05dd.",
|
||||
"Error importing course": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d9\u05d9\u05d1\u05d5\u05d0 \u05e7\u05d5\u05e8\u05e1.",
|
||||
"Error listing task history for this student and problem.": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e8\u05d9\u05e9\u05d5\u05dd \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05ea \u05de\u05e9\u05d9\u05de\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05d6\u05d4 \u05d5\u05d1\u05e2\u05d9\u05d4 \u05d6\u05d5.",
|
||||
"Error removing user": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d4\u05e1\u05e8\u05ea \u05de\u05e9\u05ea\u05de\u05e9",
|
||||
"Error resetting entrance exam attempts for student '{student_id}'. Make sure student identifier is correct.": "\u05d8\u05e2\u05d5\u05ea \u05d1\u05d0\u05d9\u05e4\u05d5\u05e1 \u05e0\u05d9\u05e1\u05d9\u05d5\u05e0\u05d5\u05ea \u05dc\u05d1\u05d7\u05d9\u05e0\u05ea \u05d4\u05db\u05e0\u05d9\u05e1\u05d4 \u05e2\u05d1\u05d5\u05e8 \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 '{student_id}'. \u05d5\u05d3\u05d0 \u05db\u05d9 \u05de\u05d6\u05d4\u05d4 \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05de\u05d3\u05d5\u05d9\u05e7. ",
|
||||
"Error resetting problem attempts for problem '<%= problem_id %>' and student '<%= student_id %>'. Make sure that the problem and student identifiers are complete and correct.": "\u05e9\u05d2\u05d9\u05d0\u05ea \u05d0\u05d9\u05e4\u05d5\u05e1 \u05e0\u05e1\u05d9\u05d5\u05e0\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 \u05d1\u05e2\u05d9\u05d4 '<%= problem_id %>' \u05d5\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 '<%= student_id %>'. \u05d5\u05d3\u05d0 \u05e9\u05de\u05d6\u05d4\u05d4 \u05d4\u05d1\u05e2\u05d9\u05d4 \u05d5\u05d4\u05ea\u05dc\u05de\u05d9\u05d3 \u05d4\u05dd \u05de\u05dc\u05d0\u05d9\u05dd \u05d5\u05e0\u05db\u05d5\u05e0\u05d9\u05dd.",
|
||||
"Error retrieving grading configuration.": "\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d8\u05e2\u05d9\u05e0\u05d4 \u05e9\u05dc \u05e7\u05d5\u05e0\u05e4\u05d9\u05d2\u05d5\u05e8\u05e6\u05d9\u05d9\u05ea \u05e6\u05d9\u05d5\u05e0\u05d9\u05dd.",
|
||||
@@ -553,6 +622,11 @@
|
||||
"Error while regenerating certificates. Please try again.": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e2\u05ea \u05d9\u05e6\u05d9\u05e8\u05d4 \u05de\u05d7\u05d3\u05e9 \u05e9\u05dc \u05d4\u05ea\u05e2\u05d5\u05d3\u05d5\u05ea. \u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1.",
|
||||
"Error.": "\u05e9\u05d2\u05d9\u05d0\u05d4",
|
||||
"Error:": "\u05e9\u05d2\u05d9\u05d0\u05d4",
|
||||
"Error: Choosing failed.": "\u05e9\u05d2\u05d9\u05d0\u05d4: \u05d4\u05d1\u05d7\u05d9\u05e8\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4.",
|
||||
"Error: Connection with server failed.": "\u05e9\u05d2\u05d9\u05d0\u05d4: \u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc\u05e9\u05e8\u05ea \u05e0\u05db\u05e9\u05dc.",
|
||||
"Error: Import failed.": "\u05e9\u05d2\u05d9\u05d0\u05d4: \u05d4\u05d9\u05d9\u05d1\u05d5\u05d0 \u05e0\u05db\u05e9\u05dc.",
|
||||
"Error: Replacing failed.": "\u05e9\u05d2\u05d9\u05d0\u05d4: \u05d4\u05d4\u05d7\u05dc\u05e4\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4.",
|
||||
"Error: Uploading failed.": "\u05e9\u05d2\u05d9\u05d0\u05d4: \u05d4\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4.",
|
||||
"Error: You cannot remove yourself from the Instructor group!": "\u05e9\u05d2\u05d9\u05d0\u05d4: \u05d0\u05d9\u05e0\u05da \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05e1\u05d9\u05e8 \u05e2\u05e6\u05de\u05da \u05de\u05e7\u05d1\u05d5\u05e6\u05ea \u05d4\u05de\u05d3\u05e8\u05d9\u05db\u05d9\u05dd.",
|
||||
"Errors": "\u05d8\u05e2\u05d5\u05d9\u05d5\u05ea",
|
||||
"Exception Granted": "\u05e0\u05d9\u05ea\u05e0\u05d4 \u05d7\u05e8\u05d9\u05d2\u05d4",
|
||||
@@ -562,15 +636,17 @@
|
||||
"Expand discussion": "\u05d4\u05e8\u05d7\u05d1 \u05d3\u05d9\u05d5\u05df",
|
||||
"Explain if other.": "\u05d4\u05e1\u05d1\u05e8 \u05d0\u05dd \u05d0\u05d7\u05e8.",
|
||||
"Explanation": "\u05d4\u05e1\u05d1\u05e8",
|
||||
"Explore New XSeries": "\u05d7\u05e7\u05d5\u05e8 \u05ea\u05d5\u05db\u05e0\u05d9\u05d5\u05ea XSeries \u05d7\u05d3\u05e9\u05d5\u05ea",
|
||||
"Explore XSeries Programs": "\u05d7\u05e7\u05d5\u05e8 \u05d0\u05ea \u05ea\u05d5\u05db\u05e0\u05d9\u05d5\u05ea XSeries",
|
||||
"Explicitly Hiding from Students": "\u05de\u05e1\u05ea\u05d9\u05e8 \u05d1\u05de\u05e4\u05d5\u05e8\u05e9 \u05de\u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd",
|
||||
"Explore your course!": "\u05e1\u05d9\u05d9\u05e8 \u05d1\u05e7\u05d5\u05e8\u05e1 \u05e9\u05dc\u05da!",
|
||||
"Failed to delete student state.": "\u05e0\u05db\u05e9\u05dc\u05d4 \u05d4\u05de\u05d7\u05d9\u05e7\u05d4 \u05e9\u05dc \u05de\u05e6\u05d1 \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8.",
|
||||
"Failed to rescore problem.": "\u05e0\u05db\u05e9\u05dc \u05ea\u05d4\u05dc\u05d9\u05da \u05de\u05ea\u05df \u05d4\u05e6\u05d9\u05d5\u05df \u05de\u05d7\u05d3\u05e9 \u05e2\u05d1\u05d5\u05e8 \u05d1\u05e2\u05d9\u05d4.",
|
||||
"Failed to reset attempts.": "\u05e0\u05db\u05e9\u05dc \u05d4\u05d0\u05d9\u05e4\u05d5\u05e1 \u05e9\u05dc \u05d4\u05e0\u05d9\u05e1\u05d9\u05d5\u05e0\u05d5\u05ea",
|
||||
"File": "\u05e7\u05d5\u05d1\u05e5",
|
||||
"File Name": "\u05e9\u05dd \u05d4\u05e7\u05d5\u05d1\u05e5",
|
||||
"File format not supported. Please upload a file with a {file_extension} extension.": "\u05ea\u05d1\u05e0\u05d9\u05ea \u05d4\u05e7\u05d5\u05d1\u05e5 \u05d0\u05d9\u05e0\u05d4 \u05e0\u05ea\u05de\u05db\u05ea. \u05d0\u05e0\u05d0 \u05d4\u05e2\u05dc\u05d4 \u05e7\u05d5\u05d1\u05e5 \u05e2\u05dd \u05ea\u05d5\u05e1\u05e4\u05ea {file_extension}.",
|
||||
"File upload succeeded": "\u05d4\u05e2\u05dc\u05d0\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d4\u05e6\u05dc\u05d9\u05d7\u05d4",
|
||||
"File {filename} exceeds maximum size of {maxFileSizeInMBs} MB": "\u05d4\u05e7\u05d5\u05d1\u05e5 {filename} \u05d7\u05d5\u05e8\u05d2 \u05de\u05d4\u05d2\u05d5\u05d3\u05dc \u05d4\u05de\u05e8\u05d1\u05d9 \u05e9\u05dc {maxFileSizeInMBs} MB",
|
||||
"Files must be in JPEG or PNG format.": "\u05e7\u05d1\u05e6\u05d9\u05dd \u05d7\u05d9\u05d9\u05d1\u05d9\u05dd \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05e4\u05d5\u05e8\u05de\u05d5 JPEG \u05d0\u05d5 PNG. ",
|
||||
"Fill browser": "\u05de\u05dc\u05d0 \u05d3\u05e4\u05d3\u05e4\u05df",
|
||||
"Filter and sort topics": "\u05e1\u05e0\u05df \u05d5\u05de\u05d9\u05d9\u05df \u05e0\u05d5\u05e9\u05d0\u05d9\u05dd",
|
||||
"Filter topics": "\u05e1\u05e0\u05df \u05e0\u05d5\u05e9\u05d0\u05d9\u05dd",
|
||||
@@ -589,6 +665,7 @@
|
||||
"Font Family": "\u05de\u05e9\u05e4\u05d7\u05ea \u05d2\u05d5\u05e4\u05e0\u05d9\u05dd",
|
||||
"Font Sizes": "\u05d2\u05d3\u05dc\u05d9 \u05d2\u05d5\u05e4\u05e0\u05d9\u05dd",
|
||||
"Footer": "\u05db\u05d5\u05ea\u05e8\u05ea \u05ea\u05d7\u05ea\u05d5\u05e0\u05d4",
|
||||
"For grading to work, you must change all {oldName} subsections to {newName}.": "\u05e2\u05dc \u05de\u05e0\u05ea \u05e9\u05de\u05ea\u05df \u05d4\u05e6\u05d9\u05d5\u05df \u05d9\u05ea\u05d1\u05e6\u05e2, \u05e2\u05dc\u05d9\u05da \u05dc\u05e9\u05e0\u05d5\u05ea \u05d0\u05ea \u05db\u05dc \u05e1\u05e2\u05d9\u05e4\u05d9 \u05d4\u05de\u05e9\u05e0\u05d4 {oldName} \u05dc-{newName}.",
|
||||
"Forgot password?": "\u05e9\u05db\u05d7\u05ea \u05e1\u05d9\u05e1\u05de\u05d4?",
|
||||
"Format": "\u05e4\u05d5\u05e8\u05de\u05d8",
|
||||
"Formats": "\u05e4\u05d5\u05e8\u05de\u05d8\u05d9\u05dd",
|
||||
@@ -600,21 +677,25 @@
|
||||
"General": "\u05db\u05dc\u05dc\u05d9",
|
||||
"Generate": "\u05e6\u05d5\u05e8",
|
||||
"Generate Exception Certificates": "\u05e6\u05d5\u05e8 \u05ea\u05e2\u05d5\u05d3\u05d5\u05ea \u05d7\u05e8\u05d9\u05d2\u05d9\u05dd",
|
||||
"Generate a Certificate for all users on the Exception list": "\u05e6\u05d5\u05e8 \u05ea\u05e2\u05d5\u05d3\u05d4 \u05e2\u05d1\u05d5\u05e8 \u05db\u05dc \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05e9\u05d1\u05e8\u05e9\u05d9\u05de\u05ea \u05d4\u05d7\u05e8\u05d9\u05d2\u05d9\u05dd",
|
||||
"Generate certificates for all users on the Exception list who do not yet have a certificate": "\u05e6\u05d5\u05e8 \u05ea\u05e2\u05d5\u05d3\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 \u05db\u05dc \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05e9\u05d1\u05e8\u05e9\u05d9\u05de\u05ea \u05d4\u05d7\u05e8\u05d9\u05d2\u05d9\u05dd \u05d5\u05e2\u05d3\u05d9\u05d9\u05df \u05dc\u05d0 \u05e7\u05d9\u05d1\u05dc\u05d5 \u05ea\u05e2\u05d5\u05d3\u05d4",
|
||||
"Generate the user's certificate": "\u05e6\u05d5\u05e8 \u05d0\u05ea \u05ea\u05e2\u05d5\u05d3\u05ea \u05d4\u05de\u05e9\u05ea\u05de\u05e9",
|
||||
"Get Credit": "\u05e7\u05d1\u05dc \u05e0\u05e7\u05d5\u05d3\u05d5\u05ea \u05d6\u05db\u05d5\u05ea",
|
||||
"Go to Dashboard": "\u05e2\u05d1\u05d5\u05e8 \u05dc\u05dc\u05d5\u05d7 \u05d4\u05d1\u05e7\u05e8\u05d4",
|
||||
"Go to your Dashboard": "\u05dc\u05da \u05dc\u05dc\u05d5\u05d7 \u05d4\u05d1\u05e7\u05e8\u05d4 \u05e9\u05dc\u05da",
|
||||
"Government-Issued Photo ID": "\u05ea\u05e2\u05d5\u05d3\u05d4 \u05de\u05d6\u05d4\u05d4 \u05e2\u05dd \u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05d4\u05d5\u05e0\u05e4\u05e7\u05d4 \u05e2\u05dc \u05d9\u05d3\u05d9 \u05d4\u05de\u05de\u05e9\u05dc\u05d4. ",
|
||||
"Grace period must be specified in HH:MM format.": "\u05ea\u05e7\u05d5\u05e4\u05ea \u05d7\u05e1\u05d3 \u05dc\u05d4\u05d2\u05e9\u05d4 \u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05e4\u05d5\u05e8\u05d8\u05ea \u05d1\u05ea\u05d1\u05e0\u05d9\u05ea HH:MM ",
|
||||
"Grade": "\u05e6\u05d9\u05d5\u05df",
|
||||
"Grade as:": "\u05ea\u05df \u05e6\u05d9\u05d5\u05df \u05d1\u05ea\u05d5\u05e8:",
|
||||
"Graded as:": "\u05d3\u05d5\u05e8\u05d2 \u05db:",
|
||||
"Grading": "\u05e6\u05d9\u05d5\u05e0\u05d9\u05dd",
|
||||
"Group %s": "\u05e7\u05d1\u05d5\u05e6\u05d4 %s",
|
||||
"Group A": "\u05e7\u05d1\u05d5\u05e6\u05d4 \u05d0",
|
||||
"Group B": "\u05e7\u05d1\u05d5\u05e6\u05d4 \u05d1",
|
||||
"Group Configuration ID": "\u05de\u05d6\u05d4\u05d4 \u05d4\u05d2\u05d3\u05e8\u05ea \u05e7\u05d1\u05d5\u05e6\u05d4",
|
||||
"Group Configuration Name": "\u05e9\u05dd \u05d4\u05d2\u05d3\u05e8\u05ea \u05e7\u05d1\u05d5\u05e6\u05d4",
|
||||
"Group Configuration information": "\u05de\u05d9\u05d3\u05e2 \u05e2\u05dc \u05d4\u05d2\u05d3\u05e8\u05ea \u05e7\u05d1\u05d5\u05e6\u05d4",
|
||||
"Group Configuration name is required.": "\u05e9\u05dd \u05d4\u05d2\u05d3\u05e8\u05ea \u05e7\u05d1\u05d5\u05e6\u05d4 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
|
||||
"Group information": "\u05de\u05d9\u05d3\u05e2 \u05e2\u05dc \u05d4\u05e7\u05d1\u05d5\u05e6\u05d4",
|
||||
"Group name is required": "\u05e9\u05dd \u05e7\u05d1\u05d5\u05e6\u05d4 \u05d4\u05d5\u05d0 \u05d4\u05db\u05e8\u05d7\u05d9",
|
||||
"Groups": "\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea",
|
||||
"H Align": "\u05d9\u05d9\u05e9\u05d5\u05e8 \u05d0\u05d5\u05e4\u05e7\u05d9",
|
||||
"HTML source code": "\u05e7\u05d5\u05d3 \u05de\u05e7\u05d5\u05e8 HTML",
|
||||
@@ -640,9 +721,12 @@
|
||||
"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.": "\u05e2\u05d6\u05d5\u05e8 \u05dc\u05ea\u05dc\u05de\u05d9\u05d3\u05d9\u05dd \u05d0\u05d7\u05e8\u05d9\u05dd \u05dc\u05d4\u05d7\u05dc\u05d9\u05d8 \u05d0\u05dd \u05dc\u05d4\u05e6\u05d8\u05e8\u05e3 \u05dc\u05e6\u05d5\u05d5\u05ea \u05e9\u05dc\u05da \u05d1\u05db\u05da \u05e9\u05ea\u05e4\u05e8\u05d8 \u05d7\u05dc\u05e7 \u05de\u05d4\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9\u05dd \u05e9\u05dc \u05d4\u05e6\u05d5\u05d5\u05ea. \u05d1\u05d7\u05e8 \u05d1\u05e7\u05e4\u05d9\u05d3\u05d4, \u05de\u05e9\u05d5\u05dd \u05e9\u05d9\u05d9\u05ea\u05db\u05df \u05e9\u05e4\u05d7\u05d5\u05ea \u05d0\u05e0\u05e9\u05d9\u05dd \u05d9\u05d4\u05d9\u05d5 \u05de\u05e2\u05d5\u05e0\u05d9\u05d9\u05e0\u05d9\u05dd \u05dc\u05d4\u05e6\u05d8\u05e8\u05e3 \u05dc\u05e6\u05d5\u05d5\u05ea \u05d0\u05dd \u05e0\u05e8\u05d0\u05d4 \u05e9\u05d4\u05d5\u05d0 \u05de\u05d2\u05d1\u05d9\u05dc \u05de\u05d3\u05d9.",
|
||||
"Hide Annotations": "\u05d4\u05e1\u05ea\u05e8 \u05d1\u05d9\u05d0\u05d5\u05e8",
|
||||
"Hide Answer": "\u05d4\u05e1\u05ea\u05e8 \u05ea\u05e9\u05d5\u05d1\u05d4",
|
||||
"Hide Deprecated Settings": "\u05d4\u05e1\u05ea\u05e8 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05de\u05d9\u05d5\u05e9\u05e0\u05d5\u05ea",
|
||||
"Hide Discussion": "\u05d4\u05e1\u05ea\u05e8 \u05d3\u05d9\u05d5\u05df",
|
||||
"Hide Previews": "\u05d4\u05e1\u05ea\u05e8 \u05ea\u05e6\u05d5\u05d2\u05d5\u05ea \u05de\u05e7\u05d3\u05d9\u05de\u05d5\u05ea",
|
||||
"Hide closed captions": "\u05d4\u05e1\u05ea\u05e8 \u05ea\u05e8\u05d2\u05d5\u05dd \u05e1\u05d2\u05d5\u05e8",
|
||||
"Hide notes": "\u05d4\u05d7\u05d1\u05d0 \u05e1\u05d9\u05db\u05d5\u05de\u05d9 \u05e9\u05d9\u05e2\u05d5\u05e8",
|
||||
"Hiding from Students": "\u05de\u05e1\u05ea\u05d9\u05e8 \u05de\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd",
|
||||
"High Definition": "\u05d4\u05e4\u05e8\u05d3\u05d4 \u05d2\u05d1\u05d5\u05d4\u05d4",
|
||||
"Highlighted text": "\u05d8\u05e7\u05e1\u05d8 \u05de\u05d5\u05d3\u05d2\u05e9",
|
||||
"Horizontal Rule (Ctrl+R)": "\u05e7\u05d5 \u05d0\u05d5\u05e4\u05e7\u05d9 (Ctrl+R)",
|
||||
@@ -654,6 +738,7 @@
|
||||
"ID": "\u05de\u05d6\u05d4\u05d4",
|
||||
"ID-Verification is not required for this Professional Education course.": "\u05dc\u05d0 \u05e0\u05d3\u05e8\u05e9 \u05d0\u05d9\u05de\u05d5\u05ea \u05e2\u05dd \u05ea\u05e2\u05d5\u05d3\u05d4 \u05de\u05d6\u05d4\u05d4 \u05e2\u05d1\u05d5\u05e8 \u05e7\u05d5\u05e8\u05e1 \u05d7\u05d9\u05e0\u05d5\u05da \u05de\u05e7\u05e6\u05d5\u05e2\u05d9 \u05d6\u05d4.",
|
||||
"Identity Verification In Progress": "\u05d0\u05d9\u05de\u05d5\u05ea \u05d6\u05d4\u05d5\u05ea \u05d1\u05ea\u05d4\u05dc\u05d9\u05da",
|
||||
"If the unit was previously published and released to students, any changes you made to the unit when it was hidden will now be visible to students. Do you want to proceed?": "\u05d0\u05dd \u05d4\u05d9\u05d7\u05d9\u05d3\u05d4 \u05e4\u05d5\u05e8\u05e1\u05de\u05d4 \u05d5\u05d4\u05d5\u05e4\u05e6\u05d4 \u05d1\u05e2\u05d1\u05e8 \u05dc\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd, \u05db\u05dc \u05e9\u05d9\u05e0\u05d5\u05d9 \u05e9\u05e2\u05e8\u05db\u05ea \u05d1\u05d9\u05d7\u05d9\u05d3\u05d4 \u05db\u05d0\u05e9\u05e8 \u05d4\u05d9\u05ea\u05d4 \u05e0\u05e1\u05ea\u05e8\u05ea \u05ea\u05d4\u05d9\u05d4 \u05d2\u05dc\u05d5\u05d9\u05d4 \u05db\u05e2\u05ea \u05d1\u05e4\u05e0\u05d9 \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd. \u05d4\u05d0\u05dd \u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da?",
|
||||
"If you do not yet have an account, use the button below to register.": "\u05d0\u05dd \u05d0\u05d9\u05df \u05dc\u05da \u05e2\u05d3\u05d9\u05d9\u05df \u05d7\u05e9\u05d1\u05d5\u05df, \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05dc\u05d7\u05e6\u05df \u05e9\u05dc\u05d4\u05dc\u05df \u05db\u05d3\u05d9 \u05dc\u05d4\u05d9\u05e8\u05e9\u05dd.",
|
||||
"If you don't verify your identity now, you can still explore your course from your dashboard. You will receive periodic reminders from %(platformName)s to verify your identity.": "\u05d0\u05dd \u05d0\u05ea\u05d4 \u05dc\u05d0 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da \u05db\u05e2\u05ea, \u05d0\u05ea\u05d4 \u05e2\u05d3\u05d9\u05d9\u05df \u05d9\u05db\u05d5\u05dc \u05dc\u05e1\u05d9\u05d9\u05e8 \u05d1\u05e7\u05d5\u05e8\u05e1 \u05e9\u05dc\u05da \u05de\u05dc\u05d5\u05d7 \u05d4\u05d1\u05e7\u05e8\u05d4. \u05d0\u05ea\u05d4 \u05ea\u05e7\u05d1\u05dc \u05ea\u05d6\u05db\u05d5\u05e8\u05d5\u05ea \u05ea\u05e7\u05d5\u05e4\u05ea\u05d9\u05d5\u05ea \u05de%(platformName)s \u05e9\u05d9\u05d1\u05e7\u05e9\u05d5 \u05de\u05de\u05da \u05dc\u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da.",
|
||||
"If you leave, you can no longer post in this team's discussions. Your place will be available to another learner.": "\u05d0\u05dd \u05ea\u05e2\u05d6\u05d5\u05d1, \u05dc\u05d0 \u05ea\u05d5\u05db\u05dc \u05dc\u05e4\u05e8\u05e1\u05dd \u05d9\u05d5\u05ea\u05e8 \u05d1\u05d3\u05d9\u05d5\u05e0\u05d9 \u05d4\u05e6\u05d5\u05d5\u05ea. \u05d4\u05de\u05e7\u05d5\u05dd \u05e9\u05dc\u05da \u05d9\u05ea\u05e4\u05e0\u05d4 \u05e2\u05d1\u05d5\u05e8 \u05ea\u05dc\u05de\u05d9\u05d3 \u05d0\u05d7\u05e8.",
|
||||
@@ -667,10 +752,13 @@
|
||||
"Image Upload Error": "\u05e9\u05d2\u05d9\u05d0\u05ea \u05d4\u05e2\u05dc\u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05d4",
|
||||
"Image description": "\u05ea\u05d9\u05d0\u05d5\u05e8 \u05ea\u05de\u05d5\u05e0\u05d4",
|
||||
"Image must be in PNG format": "\u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05ea\u05d1\u05e0\u05d9\u05ea PNG",
|
||||
"Image must be in PNG format.": "\u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05ea\u05d1\u05e0\u05d9\u05ea PNG.",
|
||||
"Import YouTube Transcript": "\u05d9\u05d1\u05d0 \u05ea\u05de\u05dc\u05d9\u05dc YouTube",
|
||||
"In Progress": "\u05d1\u05d1\u05d9\u05e6\u05d5\u05e2",
|
||||
"Incorrect url format.": "\u05ea\u05d1\u05e0\u05d9\u05ea \u05db\u05ea\u05d5\u05d1\u05ea URL \u05e9\u05d2\u05d5\u05d9\u05d4.",
|
||||
"Increase indent": "\u05d4\u05d2\u05d3\u05dc \u05db\u05e0\u05d9\u05e1\u05d4",
|
||||
"Individual Exceptions": "\u05d7\u05e8\u05d9\u05d2\u05d5\u05ea \u05d0\u05d9\u05e0\u05d3\u05d9\u05d1\u05d9\u05d3\u05d5\u05d0\u05dc\u05d9\u05d5\u05ea",
|
||||
"Inheriting Student Visibility": "\u05d9\u05d5\u05e8\u05e9 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d7\u05e9\u05d9\u05e4\u05d4 \u05dc\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd",
|
||||
"Inline": "Inline",
|
||||
"Insert": "\u05d4\u05db\u05e0\u05e1",
|
||||
"Insert Hyperlink": "\u05d4\u05db\u05e0\u05e1 \u05e7\u05d9\u05e9\u05d5\u05e8",
|
||||
@@ -703,6 +791,7 @@
|
||||
"Joined %(date)s": "\u05d4\u05e6\u05d8\u05e8\u05e3 \u05d1\u05ea\u05d0\u05e8\u05d9\u05da %(date)s",
|
||||
"Justify": "\u05d9\u05d9\u05e9\u05d5\u05e8",
|
||||
"KB": "KB",
|
||||
"Key should only contain letters, numbers, _, or -": "\u05de\u05e4\u05ea\u05d7 \u05e6\u05e8\u05d9\u05da \u05dc\u05d4\u05db\u05d9\u05dc \u05e8\u05e7 \u05d0\u05d5\u05ea\u05d9\u05d5\u05ea, \u05de\u05e1\u05e4\u05e8\u05d9\u05dd, _, \u05d0\u05d5 -",
|
||||
"Keywords": "\u05de\u05d9\u05dc\u05d5\u05ea \u05de\u05e4\u05ea\u05d7",
|
||||
"LEARN MORE": "\u05dc\u05e7\u05d1\u05dc\u05ea \u05de\u05d9\u05d3\u05e2 \u05e0\u05d5\u05e1\u05e3",
|
||||
"Language": "\u05e9\u05e4\u05d4",
|
||||
@@ -723,16 +812,20 @@
|
||||
"Left to right": "\u05e9\u05de\u05d0\u05dc \u05dc\u05d9\u05de\u05d9\u05df",
|
||||
"Legal name": "\u05e9\u05dd \u05d7\u05d5\u05e7\u05d9",
|
||||
"Less": "\u05e4\u05d7\u05d5\u05ea",
|
||||
"Library User": "\u05de\u05e9\u05ea\u05de\u05e9 \u05e1\u05e4\u05e8\u05d9\u05d4",
|
||||
"License Display": "\u05ea\u05e6\u05d5\u05d2\u05ea \u05e8\u05d9\u05e9\u05d9\u05d5\u05df",
|
||||
"License Type": "\u05e1\u05d5\u05d2 \u05e8\u05d9\u05e9\u05d9\u05d5\u05df",
|
||||
"Limit Access": "\u05d2\u05d9\u05e9\u05d4 \u05de\u05d5\u05d2\u05d1\u05dc\u05ea",
|
||||
"Limited Profile": "\u05e4\u05e8\u05d5\u05e4\u05d9\u05dc \u05de\u05d5\u05d2\u05d1\u05dc",
|
||||
"Link Description": "\u05ea\u05d9\u05d0\u05d5\u05e8 \u05d4\u05e7\u05d9\u05e9\u05d5\u05e8",
|
||||
"Link types should be unique.": "\u05e2\u05dc \u05e1\u05d5\u05d2\u05d9 \u05d4\u05e7\u05d9\u05e9\u05d5\u05e8 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d9\u05d7\u05d5\u05d3\u05d9\u05d9\u05dd.",
|
||||
"Linking": "\u05de\u05e7\u05e9\u05e8",
|
||||
"Links are generated on demand and expire within 5 minutes due to the sensitive nature of student information.": "\u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd \u05e0\u05d5\u05e6\u05e8\u05d9\u05dd \u05dc\u05e4\u05d9 \u05d3\u05e8\u05d9\u05e9\u05d4 \u05d5\u05ea\u05d5\u05e7\u05e4\u05dd \u05e4\u05d2 \u05dc\u05d0\u05d7\u05e8 5 \u05d3\u05e7\u05d5\u05ea \u05d1\u05d2\u05dc\u05dc \u05e8\u05d2\u05d9\u05e9\u05d5\u05ea \u05de\u05d9\u05d3\u05e2 \u05e2\u05dc \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8.",
|
||||
"Links should be unique.": "\u05e2\u05dc \u05d4\u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd \u05dc\u05d4\u05d9\u05d5\u05ea \u05d9\u05d7\u05d5\u05d3\u05d9\u05d9\u05dd.",
|
||||
"List item": "\u05e4\u05e8\u05d9\u05d8 \u05e8\u05e9\u05d9\u05de\u05d4",
|
||||
"List of uploaded files and assets in this course": "\u05e8\u05e9\u05d9\u05de\u05ea \u05e7\u05d1\u05e6\u05d9\u05dd \u05e9\u05d4\u05d5\u05e2\u05dc\u05d5 \u05d5\u05e9\u05dc \u05e0\u05db\u05e1\u05d9\u05dd \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d6\u05d4",
|
||||
"Live view of webcam": "\u05ea\u05e6\u05d5\u05d2\u05d4 \u05d7\u05d9\u05d4 \u05e9\u05dc \u05de\u05e6\u05dc\u05de\u05ea \u05d4\u05e8\u05e9\u05ea",
|
||||
"Load Another File": "\u05d8\u05e2\u05df \u05e7\u05d5\u05d1\u05e5 \u05d0\u05d7\u05e8",
|
||||
"Load all responses": "\u05d8\u05e2\u05df \u05d0\u05ea \u05db\u05dc \u05d4\u05ea\u05d2\u05d5\u05d1\u05d5\u05ea",
|
||||
"Load more": "\u05d8\u05e2\u05df \u05e2\u05d5\u05d3",
|
||||
"Load next %(numResponses)s responses": "\u05d8\u05e2\u05df %(numResponses)s \u05ea\u05d2\u05d5\u05d1\u05d5\u05ea \u05d4\u05d1\u05d0\u05d5\u05ea",
|
||||
@@ -755,18 +848,22 @@
|
||||
"Lower Greek": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d9\u05d5\u05d5\u05e0\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea",
|
||||
"Lower Roman": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05e8\u05d5\u05de\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea",
|
||||
"MB": "MB",
|
||||
"Make Visible to Students": "\u05e9\u05e0\u05d4 \u05dc\u05d2\u05dc\u05d5\u05d9 \u05e2\u05d1\u05d5\u05e8 \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd ",
|
||||
"Make sure that the full name on your account matches the name on your ID.": "\u05d5\u05d3\u05d0 \u05db\u05d9 \u05d4\u05e9\u05dd \u05d4\u05de\u05dc\u05d0 \u05d1\u05e9\u05dd \u05d4\u05d7\u05e9\u05d1\u05d5\u05df \u05e9\u05dc\u05da \u05ea\u05d5\u05d0\u05dd \u05d0\u05ea \u05d4\u05e9\u05dd \u05d1\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05d6\u05d4\u05d4 \u05e9\u05dc\u05da. ",
|
||||
"Make sure we can verify your identity with the photos and information you have provided.": "\u05d5\u05d3\u05d0 \u05e9\u05e0\u05d5\u05db\u05dc \u05dc\u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da \u05e2\u05dd \u05d4\u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05d5\u05d4\u05de\u05d9\u05d3\u05e2 \u05e9\u05e1\u05d9\u05e4\u05e7\u05ea \u05dc\u05e0\u05d5.",
|
||||
"Make sure your ID is well-lit": "\u05d5\u05d3\u05d0 \u05db\u05d9 \u05ea\u05e2\u05d5\u05d3\u05ea \u05d4\u05d6\u05d9\u05d4\u05d5\u05d9 \u05e9\u05dc\u05da \u05de\u05d5\u05d0\u05e8\u05ea \u05db\u05e8\u05d0\u05d5\u05d9",
|
||||
"Make sure your face is well-lit": "\u05d0\u05e0\u05d0 \u05d5\u05d5\u05d3\u05d0 \u05e9\u05d4\u05e4\u05e0\u05d9\u05dd \u05de\u05d5\u05d0\u05e8\u05d9\u05dd \u05d4\u05d9\u05d8\u05d1.",
|
||||
"Make this subsection available as a prerequisite to other content": "\u05d4\u05e4\u05d5\u05da \u05d0\u05ea \u05ea\u05ea \u05e1\u05e2\u05d9\u05e3 \u05d6\u05d4 \u05dc\u05d6\u05de\u05d9\u05df \u05db\u05d3\u05e8\u05d9\u05e9\u05d4 \u05de\u05d5\u05e7\u05d3\u05de\u05ea \u05dc\u05ea\u05d5\u05db\u05df \u05d0\u05d7\u05e8",
|
||||
"Making Visible to Students": "\u05de\u05e9\u05e0\u05d4 \u05dc\u05d2\u05dc\u05d5\u05d9 \u05e2\u05d1\u05d5\u05e8 \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd",
|
||||
"Manage Students": "\u05e0\u05d4\u05dc \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd",
|
||||
"Manual": "\u05d9\u05d3\u05e0\u05d9\u05ea",
|
||||
"Mark Exam As Completed": "\u05e1\u05de\u05df \u05de\u05d1\u05d7\u05df \u05db\u05d4\u05d5\u05e9\u05dc\u05dd",
|
||||
"Mark as Answer": "\u05e1\u05de\u05df \u05db\u05ea\u05e9\u05d5\u05d1\u05d4",
|
||||
"Mark enrollment code as unused": "\u05e1\u05de\u05df \u05d0\u05ea \u05e7\u05d5\u05d3 \u05d4\u05d4\u05e8\u05e9\u05de\u05d4 \u05db'\u05d0\u05d9\u05e0\u05d5 \u05d1\u05e9\u05d9\u05de\u05d5\u05e9'",
|
||||
"Markdown Editing Help": "\u05e2\u05d6\u05e8\u05d4 \u05d1\u05e2\u05e8\u05d9\u05db\u05ea Markdown",
|
||||
"Marketing Slug is required.": "\u05e9\u05dd \u05d4\u05e1\u05dc\u05d0\u05d2 \u05dc\u05e9\u05d9\u05d5\u05d5\u05e7 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4.",
|
||||
"Match case": "\u05d4\u05ea\u05d0\u05de\u05d4 \u05e9\u05dc \u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea \u05d5\u05d2\u05d3\u05d5\u05dc\u05d5\u05ea",
|
||||
"Max file size exceeded": "\u05d4\u05d2\u05d5\u05d3\u05dc \u05d4\u05de\u05e7\u05e1\u05d9\u05de\u05dc\u05d9 \u05e9\u05dc \u05d4\u05e7\u05d5\u05d1\u05e5 \u05d7\u05e8\u05d2 \u05d9\u05ea\u05e8 \u05e2\u05dc \u05d4\u05de\u05d9\u05d3\u05d4",
|
||||
"Maximum": "\u05de\u05e7\u05e1\u05d9\u05de\u05d5\u05dd",
|
||||
"Membership": "\u05d7\u05d1\u05e8\u05d5\u05ea",
|
||||
"Merge cells": "\u05de\u05d6\u05d2 \u05ea\u05d0\u05d9\u05dd",
|
||||
@@ -789,6 +886,7 @@
|
||||
"Name of the signatory": "\u05e9\u05dd \u05d4\u05d7\u05ea\u05d9\u05de\u05d4",
|
||||
"Name or short description of the configuration": "\u05e9\u05dd \u05d0\u05d5 \u05ea\u05d9\u05d0\u05d5\u05e8 \u05e7\u05e6\u05e8 \u05e9\u05dc \u05d4\u05d2\u05d3\u05e8\u05d4",
|
||||
"Never published": "\u05de\u05e2\u05d5\u05dc\u05dd \u05dc\u05d0 \u05e4\u05d5\u05e8\u05e1\u05dd",
|
||||
"New %(component_type)s": "\u05d7\u05d3\u05e9 %(component_type)s",
|
||||
"New %(item_type)s": "\u05d7\u05d3\u05e9 %(item_type)s",
|
||||
"New Address": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d7\u05d3\u05e9\u05d4",
|
||||
"New document": "\u05de\u05e1\u05de\u05da \u05d7\u05d3\u05e9",
|
||||
@@ -799,6 +897,7 @@
|
||||
"Next Step: Confirm your identity": "\u05e9\u05dc\u05d1 \u05d4\u05d1\u05d0: \u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da",
|
||||
"Next: %(nextStepTitle)s": "\u05d4\u05d1\u05d0: %(nextStepTitle)s",
|
||||
"No Content Group": "\u05d0\u05d9\u05df \u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df",
|
||||
"No Derivatives": "\u05dc\u05dc\u05d0 \u05e0\u05d2\u05d6\u05e8\u05d5\u05ea",
|
||||
"No EdX Timed Transcript": "\u05d0\u05d9\u05df \u05dcedX \u05ea\u05de\u05dc\u05d9\u05dc \u05de\u05ea\u05d5\u05d6\u05de\u05df ",
|
||||
"No Flash Detected": "\u05dc\u05d0 \u05d0\u05d5\u05ea\u05e8 \u05d4\u05ea\u05e7\u05df \u05e4\u05dc\u05d0\u05e9",
|
||||
"No Timed Transcript": "\u05d0\u05d9\u05df \u05ea\u05de\u05dc\u05d9\u05dc \u05de\u05ea\u05d5\u05d6\u05de\u05df",
|
||||
@@ -811,12 +910,17 @@
|
||||
"No results": "\u05d0\u05d9\u05df \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea ",
|
||||
"No results found for \"%(query_string)s\". Please try searching again.": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 \"%(query_string)s\". \u05d0\u05e0\u05d0 \u05e0\u05e1\u05d4 \u05dc\u05d7\u05e4\u05e9 \u05e9\u05d5\u05d1.",
|
||||
"No results found for %(original_query)s. Showing results for %(suggested_query)s.": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 %(original_query)s. \u05de\u05e8\u05d0\u05d4 \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 %(suggested_query)s.",
|
||||
"No sources": "\u05d0\u05d9\u05df \u05de\u05e7\u05d5\u05e8\u05d5\u05ea",
|
||||
"No tasks currently running.": "\u05d0\u05d9\u05df \u05de\u05e9\u05d9\u05de\u05d5\u05ea \u05e9\u05e8\u05e6\u05d5\u05ea \u05db\u05e8\u05d2\u05e2.",
|
||||
"No threads matched your query.": "\u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05e9\u05e8\u05e9\u05d5\u05e8\u05d9\u05dd \u05d4\u05ea\u05d5\u05d0\u05de\u05d9\u05dd \u05d0\u05ea \u05d4\u05e9\u05d0\u05d9\u05dc\u05ea\u05d0 \u05d4\u05de\u05d1\u05d5\u05e7\u05e9\u05ea",
|
||||
"No validation is performed on policy keys or value pairs. If you are having difficulties, check your formatting.": "\u05dc\u05d0 \u05d1\u05d5\u05e6\u05e2 \u05d0\u05d9\u05de\u05d5\u05ea \u05d1\u05e0\u05d5\u05d2\u05e2 \u05dc\u05e7\u05d5\u05d5\u05d9 \u05de\u05d3\u05d9\u05e0\u05d9\u05d5\u05ea \u05d0\u05d5 \u05e6\u05de\u05d3\u05d9 \u05e2\u05e8\u05db\u05d9\u05dd. \u05d1\u05de\u05d9\u05d3\u05d4 \u05d5\u05d0\u05ea\u05d4 \u05e0\u05ea\u05e7\u05dc \u05d1\u05e7\u05e9\u05d9\u05d9\u05dd, \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05e2\u05d9\u05e6\u05d5\u05d1\u05da.",
|
||||
"Nonbreaking space": "\u05e8\u05d5\u05d5\u05d7",
|
||||
"Noncommercial": "\u05dc\u05d0 \u05dc\u05de\u05d8\u05e8\u05d5\u05ea \u05de\u05e1\u05d7\u05e8",
|
||||
"None": "\u05dc\u05dc\u05d0",
|
||||
"Not Graded": "\u05dc\u05d0 \u05d3\u05d5\u05e8\u05d2",
|
||||
"Not able to set passing grade to less than %(minimum_grade_cutoff)s%.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05d2\u05d3\u05d9\u05e8 \u05e6\u05d9\u05d5\u05df \u05e2\u05d5\u05d1\u05e8 \u05e4\u05d7\u05d5\u05ea \u05de-%(minimum_grade_cutoff)s%.",
|
||||
"Not available": "\u05dc\u05d0 \u05d6\u05de\u05d9\u05df",
|
||||
"Not in Use": "\u05dc\u05d0 \u05d1\u05e9\u05d9\u05de\u05d5\u05e9",
|
||||
"Not selected": "\u05dc\u05d0 \u05e0\u05d1\u05d7\u05e8",
|
||||
"Note": "\u05d4\u05e2\u05e8\u05d4",
|
||||
"Note: Students can be in only one cohort. Adding students to this group overrides any previous group assignment.": "\u05e9\u05d9\u05d1 \u05dc\u05d1: \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05d9\u05db\u05d5\u05dc\u05d9\u05dd \u05dc\u05d4\u05d9\u05d5\u05ea \u05d7\u05d1\u05e8\u05d9\u05dd \u05e8\u05e7 \u05d1\u05e7\u05d1\u05d5\u05e6\u05ea \u05dc\u05d9\u05de\u05d5\u05d3 \u05d0\u05d7\u05ea. \u05d4\u05d5\u05e1\u05e4\u05ea \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05dc\u05e7\u05d1\u05d5\u05e6\u05d4 \u05d6\u05d5 \u05ea\u05d1\u05d8\u05dc \u05db\u05dc \u05e9\u05d9\u05d5\u05da \u05e7\u05d5\u05d3\u05dd. ",
|
||||
@@ -833,10 +937,12 @@
|
||||
"Ok": "\u05d1\u05e1\u05d3\u05e8",
|
||||
"Once in position, use the camera button {icon} to capture your ID": "\u05db\u05d0\u05e9\u05e8 \u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05d6\u05d4\u05d4 \u05e9\u05dc\u05da \u05de\u05de\u05d5\u05e7\u05de\u05ea, \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05dc\u05d7\u05e6\u05df \u05d4\u05de\u05e6\u05dc\u05de\u05d4 {icon} \u05db\u05d3\u05d9 \u05dc\u05dc\u05db\u05d5\u05d3 \u05d0\u05ea \u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05d6\u05d4\u05d4 \u05e9\u05dc\u05da",
|
||||
"Once in position, use the camera button {icon} to capture your photo": "\u05db\u05d0\u05e9\u05e8 \u05d4\u05e4\u05e0\u05d9\u05dd \u05e9\u05dc\u05da \u05de\u05de\u05d5\u05e7\u05de\u05d9\u05dd, \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05dc\u05d7\u05e6\u05df \u05d4\u05de\u05e6\u05dc\u05de\u05d4 {icon} \u05db\u05d3\u05d9 \u05dc\u05e6\u05dc\u05dd \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc\u05da",
|
||||
"Only <%= fileTypes %> files can be uploaded. Please select a file ending in <%= fileExtensions %> to upload.": "\u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e2\u05dc\u05d5\u05ea \u05e8\u05e7 \u05e7\u05d5\u05d1\u05e6\u05d9 <%= fileTypes %>. \u05d0\u05e0\u05d0 \u05d1\u05d7\u05e8 \u05e7\u05d5\u05d1\u05e5 \u05e9\u05de\u05e1\u05ea\u05d9\u05d9\u05dd \u05d1-<%= fileExtensions %> \u05db\u05d3\u05d9 \u05dc\u05d4\u05e2\u05dc\u05d5\u05ea.",
|
||||
"Only properly formatted .csv files will be accepted.": "\u05d9\u05ea\u05e7\u05d1\u05dc\u05d5 \u05e8\u05e7 \u05e7\u05d1\u05e6\u05d9 CSV. \u05de\u05e4\u05d5\u05e8\u05de\u05d8\u05d9\u05dd \u05db\u05d4\u05dc\u05db\u05d4 ",
|
||||
"Open": "\u05e4\u05ea\u05d7",
|
||||
"Open Calculator": "\u05e4\u05ea\u05d7 \u05de\u05d7\u05e9\u05d1\u05d5\u05df",
|
||||
"Open/download this file": "\u05e4\u05ea\u05d7/\u05d4\u05d5\u05e8\u05d3 \u05e7\u05d5\u05d1\u05e5 \u05d6\u05d4",
|
||||
"OpenAssessment Save Error": "\u05e9\u05d2\u05d9\u05d0\u05ea \u05e9\u05de\u05d9\u05e8\u05d4 \u05e9\u05dc OpenAssessment",
|
||||
"Optional Characteristics": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9\u05dd \u05d0\u05d5\u05e4\u05e6\u05d9\u05d5\u05e0\u05dc\u05d9\u05d9\u05dd",
|
||||
"Optional long description": "\u05ea\u05d9\u05d0\u05d5\u05e8 \u05d0\u05e8\u05d5\u05da - \u05e8\u05e9\u05d5\u05ea",
|
||||
"Options for {license_name}": "\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 {license_name}",
|
||||
@@ -862,6 +968,7 @@
|
||||
"Paste your embed code below:": "\u05d4\u05db\u05e0\u05e1 \u05e7\u05d5\u05d3 embed \u05dc\u05de\u05d8\u05d4:",
|
||||
"Path to Signature Image": "\u05e0\u05ea\u05d9\u05d1 \u05dc\u05ea\u05de\u05d5\u05e0\u05ea \u05d7\u05ea\u05d9\u05de\u05d4",
|
||||
"Pause": "\u05d4\u05e9\u05d4\u05d4",
|
||||
"Pending": "\u05d1\u05d4\u05de\u05ea\u05e0\u05d4",
|
||||
"Photo Captured successfully.": "\u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05e6\u05d5\u05dc\u05de\u05d4 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4.",
|
||||
"Photo ID": "\u05ea\u05e2\u05d5\u05d3\u05d4 \u05de\u05d6\u05d4\u05d4 \u05e2\u05dd \u05ea\u05de\u05d5\u05e0\u05d4",
|
||||
"Photo Identification": "\u05d6\u05d9\u05d4\u05d5\u05d9 \u05ea\u05de\u05d5\u05e0\u05d4",
|
||||
@@ -875,6 +982,8 @@
|
||||
"Play": "\u05e0\u05d2\u05df",
|
||||
"Play video": "\u05d4\u05e4\u05e2\u05dc \u05d0\u05ea \u05e1\u05e8\u05d8\u05d5\u05df \u05d4\u05d5\u05d5\u05d9\u05d3\u05d0\u05d5",
|
||||
"Please Note": "\u05e9\u05d9\u05dd \u05dc\u05d1",
|
||||
"Please add at least one chapter": "\u05d0\u05e0\u05d0 \u05d4\u05d5\u05e1\u05e3 \u05e4\u05e8\u05e7 \u05d0\u05d7\u05d3 \u05dc\u05e4\u05d7\u05d5\u05ea",
|
||||
"Please address the errors on this page first, and then save your progress.": "\u05d0\u05e0\u05d0 \u05d4\u05ea\u05d9\u05d9\u05d7\u05e1 \u05dc\u05d8\u05e2\u05d5\u05d9\u05d5\u05ea \u05d1\u05e2\u05de\u05d5\u05d3 \u05d6\u05d4 \u05e7\u05d5\u05d3\u05dd \u05d5\u05dc\u05d0\u05d7\u05e8 \u05de\u05db\u05df \u05e9\u05de\u05d5\u05e8 \u05d0\u05ea \u05e2\u05d1\u05d5\u05d3\u05ea\u05da.",
|
||||
"Please check the following validation feedbacks and reflect them in your course settings:": "\u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05de\u05e9\u05d5\u05d1\u05d9 \u05d4\u05d0\u05d9\u05de\u05d5\u05ea \u05d4\u05d1\u05d0\u05d9\u05dd \u05d5\u05e9\u05e7\u05e3 \u05d0\u05d5\u05ea\u05dd \u05d1\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1:",
|
||||
"Please check your email to confirm the change": "\u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05e9\u05dc\u05da \u05db\u05d3\u05d9 \u05dc\u05d0\u05e9\u05e8 \u05d0\u05ea \u05d4\u05e9\u05d9\u05e0\u05d5\u05d9",
|
||||
"Please describe this image or agree that it has no contextual value by checking the checkbox.": "\u05ea\u05d0\u05e8 \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05d0\u05d5 \u05d4\u05e1\u05db\u05dd \u05e9\u05d0\u05d9\u05df \u05dc\u05d4 \u05e2\u05e8\u05da \u05d4\u05e7\u05e9\u05e8\u05d9 \u05e2\u05dc-\u05d9\u05d3\u05d9 \u05e1\u05d9\u05de\u05d5\u05df \u05ea\u05d9\u05d1\u05ea \u05d4\u05e1\u05d9\u05de\u05d5\u05df.",
|
||||
@@ -886,12 +995,20 @@
|
||||
"Please enter a valid donation amount.": "\u05d0\u05e0\u05d0 \u05d4\u05d6\u05df \u05e1\u05db\u05d5\u05dd \u05ea\u05e7\u05e3 \u05dc\u05ea\u05e8\u05d5\u05de\u05d4.",
|
||||
"Please enter a valid email address": "\u05d0\u05e0\u05d0 \u05d4\u05d6\u05df \u05db\u05ea\u05d5\u05d1\u05ea \u05d3\u05d5\u05d0\"\u05dc \u05ea\u05e7\u05e4\u05d4",
|
||||
"Please enter a valid password": "\u05d0\u05e0\u05d0 \u05d4\u05d6\u05df \u05e1\u05d9\u05e1\u05de\u05d4 \u05ea\u05e7\u05e4\u05d4",
|
||||
"Please enter an integer between %(min)s and %(max)s.": "\u05d4\u05d6\u05df \u05de\u05e1\u05e4\u05e8 \u05e9\u05dc\u05dd \u05d1\u05d9\u05df %(min)s \u05dc %(max)s.",
|
||||
"Please enter an integer between 0 and 100.": "\u05d0\u05e0\u05d0 \u05d4\u05d6\u05df \u05de\u05e1\u05e4\u05e8 \u05e9\u05dc\u05dd \u05d1\u05d9\u05df 0 \u05d5-100",
|
||||
"Please enter an integer greater than 0.": "\u05d0\u05e0\u05d0 \u05d4\u05d6\u05df \u05de\u05e1\u05e4\u05e8 \u05e9\u05dc\u05dd \u05d2\u05d3\u05d5\u05dc \u05de 0.",
|
||||
"Please enter non-negative integer.": "\u05d0\u05e0\u05d0 \u05d4\u05d6\u05df \u05de\u05e1\u05e4\u05e8 \u05e9\u05dc\u05dd \u05d5\u05d7\u05d9\u05d5\u05d1\u05d9.",
|
||||
"Please enter valid start date and time.": "\u05d4\u05d6\u05df \u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05ea\u05d7\u05dc\u05d4 \u05d5\u05e9\u05e2\u05d4 \u05d7\u05d5\u05e7\u05d9\u05d9\u05dd.",
|
||||
"Please enter your %(field)s.": "\u05d0\u05e0\u05d0 \u05d4\u05d6\u05df \u05d0\u05ea %(field)s.",
|
||||
"Please enter your email address below and we will send you instructions for setting a new password.": "\u05d0\u05e0\u05d0 \u05d4\u05d6\u05df \u05dc\u05de\u05d8\u05d4 \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05e9\u05dc\u05da \u05d5\u05d0\u05e0\u05d7\u05e0\u05d5 \u05e0\u05e9\u05dc\u05d7 \u05dc\u05da \u05d4\u05e0\u05d7\u05d9\u05d5\u05ea \u05dc\u05e7\u05d1\u05d9\u05e2\u05ea \u05e1\u05d9\u05e1\u05de\u05d0 \u05d7\u05d3\u05e9\u05d4. ",
|
||||
"Please follow the instructions here to upload a file elsewhere and link to it: {maxFileSizeRedirectUrl}": "\u05d1\u05e6\u05e2 \u05d0\u05ea \u05d4\u05d4\u05d5\u05e8\u05d0\u05d5\u05ea \u05e9\u05dc\u05d4\u05dc\u05df \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05d4\u05e2\u05dc\u05d5\u05ea \u05e7\u05d5\u05d1\u05e5 \u05d1\u05de\u05e7\u05d5\u05dd \u05d0\u05d7\u05e8 \u05d5\u05dc\u05e7\u05e9\u05e8 \u05d0\u05dc\u05d9\u05d5: {maxFileSizeRedirectUrl}",
|
||||
"Please print this page for your records; it serves as your receipt. You will also receive an email with the same information.": "\u05d0\u05e0\u05d0 \u05d4\u05d3\u05e4\u05e1 \u05d3\u05e3 \u05d6\u05d4 \u05dc\u05e8\u05e9\u05d5\u05de\u05d5\u05ea\u05d9\u05da; \u05d4\u05d5\u05d0 \u05de\u05e9\u05de\u05e9 \u05db\u05e7\u05d1\u05dc\u05d4. \u05d0\u05ea\u05d4 \u05ea\u05e7\u05d1\u05dc \u05d2\u05dd \u05d4\u05d5\u05d3\u05e2\u05ea \u05d3\u05d5\u05d0\"\u05dc \u05e2\u05dd \u05de\u05d9\u05d3\u05e2 \u05d6\u05d4\u05d4. ",
|
||||
"Please provide a description of the link destination.": "\u05d0\u05e0\u05d0 \u05e1\u05e4\u05e7 \u05ea\u05d9\u05d0\u05d5\u05e8 \u05e9\u05dc \u05d9\u05e2\u05d3 \u05d4\u05e7\u05d9\u05e9\u05d5\u05e8.",
|
||||
"Please provide a valid URL.": "\u05d0\u05e0\u05d0 \u05e1\u05e4\u05e7 \u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05ea\u05e8 \u05d7\u05d5\u05e7\u05d9\u05ea.",
|
||||
"Please select a PDF file to upload.": "\u05d0\u05e0\u05d0 \u05d1\u05d7\u05e8 \u05e7\u05d5\u05d1\u05e5 PDF \u05dc\u05d4\u05e2\u05dc\u05d0\u05d4.",
|
||||
"Please select a file in .srt format.": "\u05d0\u05e0\u05d0 \u05d1\u05d7\u05e8 \u05e7\u05d5\u05d1\u05e5 \u05d1\u05ea\u05d1\u05e0\u05d9\u05ea .srt",
|
||||
"Please select a valid organization.": "\u05e0\u05d0 \u05d1\u05d7\u05e8 \u05d0\u05e8\u05d2\u05d5\u05df \u05d7\u05d5\u05e7\u05d9.",
|
||||
"Please specify a reason.": "\u05e6\u05d9\u05d9\u05df \u05e1\u05d9\u05d1\u05d4.",
|
||||
"Please verify that you have uploaded a valid image (PNG and JPEG).": "\u05d0\u05e0\u05d0 \u05d5\u05d3\u05d0 \u05e9\u05d4\u05e2\u05dc\u05ea \u05ea\u05de\u05d5\u05e0\u05d4 \u05d7\u05d5\u05e7\u05d9\u05ea (PNG \u05d5- JPEG).",
|
||||
"Please verify that your webcam is connected and that you have allowed your browser to access it.": "\u05d0\u05e0\u05d0 \u05d5\u05d3\u05d0 \u05e9\u05de\u05e6\u05dc\u05de\u05ea \u05d4\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8 \u05e9\u05dc\u05da \u05de\u05d7\u05d5\u05d1\u05e8\u05ea \u05d5\u05e9\u05d0\u05e4\u05e9\u05e8\u05ea \u05dc\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da \u05dc\u05d2\u05e9\u05ea \u05d0\u05dc\u05d9\u05d4.",
|
||||
@@ -915,6 +1032,7 @@
|
||||
"Previous Uploads": "\u05d4\u05e2\u05dc\u05d0\u05d5\u05ea \u05e7\u05d5\u05d3\u05de\u05d5\u05ea",
|
||||
"Previously published": "\u05e4\u05d5\u05e8\u05e1\u05dd \u05d1\u05e2\u05d1\u05e8",
|
||||
"Print": "\u05d4\u05d3\u05e4\u05e1",
|
||||
"Processing Re-run Request": "\u05de\u05e2\u05d1\u05d3 \u05d1\u05e7\u05e9\u05ea \u05d4\u05e8\u05e6\u05d4 \u05e0\u05d5\u05e1\u05e4\u05ea.",
|
||||
"Proctored": "\u05ea\u05d7\u05ea \u05e4\u05d9\u05e7\u05d5\u05d7",
|
||||
"Proctored Exam": "\u05de\u05d1\u05d7\u05df \u05ea\u05d7\u05ea \u05e4\u05d9\u05e7\u05d5\u05d7",
|
||||
"Proctored exams are timed and they record video of each learner taking the exam. The videos are then reviewed to ensure that learners follow all examination rules.": "\u05d4\u05de\u05d1\u05d7\u05e0\u05d9\u05dd \u05e9\u05ea\u05d7\u05ea \u05e4\u05d9\u05e7\u05d5\u05d7 \u05de\u05ea\u05d5\u05d6\u05de\u05e0\u05d9\u05dd \u05d5\u05d4\u05dd \u05de\u05e7\u05dc\u05d9\u05d8\u05d9\u05dd \u05d5\u05d9\u05d3\u05d0\u05d5 \u05e9\u05dc \u05db\u05dc \u05ea\u05dc\u05de\u05d9\u05d3 \u05e9\u05e0\u05d1\u05d7\u05df. \u05e1\u05e8\u05d8\u05d5\u05e0\u05d9 \u05d4\u05d5\u05d5\u05d9\u05d3\u05d0\u05d5 \u05e0\u05e1\u05e7\u05e8\u05d9\u05dd \u05dc\u05d0\u05d7\u05e8 \u05de\u05db\u05df \u05db\u05d3\u05d9 \u05dc\u05d4\u05d1\u05d8\u05d9\u05d7 \u05e9\u05d4\u05ea\u05dc\u05de\u05d9\u05d3\u05d9\u05dd \u05d9\u05e6\u05d9\u05d9\u05ea\u05d5 \u05dc\u05db\u05dc \u05db\u05dc\u05dc\u05d9 \u05d4\u05de\u05d1\u05d7\u05df.",
|
||||
@@ -928,11 +1046,16 @@
|
||||
"Promote another member to Admin to remove your admin rights": "\u05e7\u05d3\u05dd \u05d7\u05d1\u05e8 \u05d0\u05d7\u05e8 \u05dc\u05de\u05e0\u05d4\u05dc \u05d1\u05db\u05d3\u05d9 \u05dc\u05d4\u05e1\u05d9\u05e8 \u05d0\u05ea \u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05d4\u05e0\u05d9\u05d4\u05d5\u05dc \u05e9\u05dc\u05da",
|
||||
"Public": "\u05e6\u05d9\u05d1\u05d5\u05e8\u05d9",
|
||||
"Publish": "\u05e4\u05e8\u05e1\u05dd",
|
||||
"Publish all unpublished changes for this {item}?": "\u05d4\u05d0\u05dd \u05dc\u05e4\u05e8\u05e1\u05dd \u05d0\u05ea \u05db\u05dc \u05d4\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e9\u05dc\u05d0 \u05e4\u05d5\u05e8\u05e1\u05de\u05d5 \u05e2\u05d1\u05d5\u05e8 {item}?",
|
||||
"Publish this program?": "\u05e4\u05e8\u05e1\u05dd \u05ea\u05db\u05e0\u05d9\u05ea \u05d6\u05d5?",
|
||||
"Publish {display_name}": "\u05e4\u05e8\u05e1\u05dd \u05d0\u05ea {display_name}",
|
||||
"Published (not yet released)": "\u05e4\u05d5\u05e8\u05e1\u05dd (\u05d0\u05d1\u05dc \u05dc\u05d0 \u05e9\u05d5\u05d7\u05e8\u05e8)",
|
||||
"Published and Live": "\u05e4\u05d5\u05e8\u05e1\u05dd \u05d5\u05d7\u05d9",
|
||||
"Publishing": "\u05de\u05e4\u05e8\u05e1\u05dd",
|
||||
"Publishing Status": "\u05de\u05e6\u05d1 \u05e4\u05e8\u05e1\u05d5\u05dd",
|
||||
"Question": "\u05e9\u05d0\u05dc\u05d4",
|
||||
"Questions raise issues that need answers. Discussions share ideas and start conversations.": "\u05d1\u05e2\u05d6\u05e8\u05ea \u05db\u05e4\u05ea\u05d5\u05e8 \u05e9\u05d0\u05dc\u05d4 \u05ea\u05d5\u05db\u05dc \u05dc\u05d4\u05e2\u05dc\u05d5\u05ea \u05e1\u05d5\u05d2\u05d9\u05d9\u05d4 \u05de\u05e1\u05d5\u05d9\u05de\u05ea \u05e9\u05de\u05e6\u05e8\u05d9\u05db\u05d4 \u05ea\u05e9\u05d5\u05d1\u05d4. \u05d1\u05e2\u05d6\u05e8\u05ea \u05db\u05e4\u05ea\u05d5\u05e8 \u05d3\u05d9\u05d5\u05df \u05ea\u05d5\u05db\u05dc \u05dc\u05d7\u05dc\u05d5\u05e7 \u05e8\u05e2\u05d9\u05d5\u05e0\u05d5\u05ea \u05d5\u05dc\u05d4\u05ea\u05d7\u05d9\u05dc \u05d1\u05e9\u05d9\u05d7\u05d5\u05ea \u05e2\u05dc \u05e0\u05d5\u05e9\u05d0\u05d9 \u05d4\u05e7\u05d5\u05e8\u05e1 \u05d4\u05e9\u05d5\u05e0\u05d9\u05dd.",
|
||||
"Queued": "\u05de\u05de\u05ea\u05d9\u05df \u05d1\u05ea\u05d5\u05e8",
|
||||
"Reason": "\u05e1\u05d9\u05d1\u05d4",
|
||||
"Reason field should not be left blank.": "\u05d9\u05e9 \u05dc\u05de\u05dc\u05d0 \u05d0\u05ea \u05e9\u05d3\u05d4 \u05d4\u05e1\u05d9\u05d1\u05d4.",
|
||||
"Reason for change:": "\u05e1\u05d9\u05d1\u05d4 \u05dc\u05e9\u05d9\u05e0\u05d5\u05d9:",
|
||||
@@ -985,7 +1108,10 @@
|
||||
"Restore last draft": "\u05e9\u05d7\u05d6\u05e8 \u05d8\u05d9\u05d5\u05d8\u05d4 \u05d0\u05d7\u05e8\u05d5\u05e0\u05d4",
|
||||
"Retake Photo": "\u05e6\u05dc\u05dd \u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05d5\u05d1",
|
||||
"Retake Your Photos": "\u05e6\u05dc\u05dd \u05de\u05d7\u05d3\u05e9 \u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05ea\u05da",
|
||||
"Return and add email address": "\u05d7\u05d6\u05d5\u05e8 \u05d5\u05d4\u05d5\u05e1\u05e3 \u05db\u05ea\u05d5\u05d1\u05ea \u05d3\u05d5\u05d0\"\u05dc",
|
||||
"Return to Export": "\u05d7\u05d6\u05d5\u05e8 \u05dc\u05d9\u05d9\u05e6\u05d5\u05d0",
|
||||
"Return to Your Dashboard": "\u05d7\u05d6\u05d5\u05e8 \u05dc\u05de\u05e8\u05db\u05d6 \u05d4\u05e9\u05dc\u05d9\u05d8\u05d4",
|
||||
"Return to team listing": "\u05d7\u05d6\u05d5\u05e8 \u05dc\u05e8\u05e9\u05d9\u05de\u05ea \u05e6\u05d5\u05d5\u05ea",
|
||||
"Review Rules": "\u05db\u05dc\u05dc\u05d9 \u05d1\u05d7\u05d9\u05e0\u05d4",
|
||||
"Review Your Photos": "\u05e1\u05e7\u05d5\u05e8 \u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05d5\u05ea\u05d9\u05da",
|
||||
"Review your info": "\u05e1\u05e7\u05d5\u05e8 \u05d0\u05ea \u05d4\u05de\u05d9\u05d3\u05e2 \u05e9\u05dc\u05da",
|
||||
@@ -1000,6 +1126,7 @@
|
||||
"Row type": "\u05e1\u05d5\u05d2 \u05e9\u05d5\u05e8\u05d4",
|
||||
"Rows": "\u05e9\u05d5\u05e8\u05d5\u05ea",
|
||||
"Save": "\u05e9\u05de\u05d5\u05e8",
|
||||
"Save Changes": "\u05e9\u05de\u05d5\u05e8 \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd",
|
||||
"Save changes": "\u05e9\u05de\u05d5\u05e8 \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd",
|
||||
"Saved cohort": "\u05e7\u05d1\u05d5\u05e6\u05d4 \u05e9\u05e0\u05e9\u05de\u05e8\u05d4",
|
||||
"Saving": "\u05e9\u05d5\u05de\u05e8",
|
||||
@@ -1029,8 +1156,10 @@
|
||||
"Sequence error! Cannot navigate to %(tab_name)s in the current SequenceModule. Please contact the course staff.": "\u05e9\u05d2\u05d9\u05d0\u05ea Sequence! \u05dc\u05d0 \u05d9\u05db\u05d5\u05dc \u05dc\u05e2\u05d1\u05d5\u05e8 \u05dc-%(tab_name)s \u05d1\u05de\u05d5\u05d3\u05d5\u05dc \u05e0\u05d5\u05db\u05d7\u05d9. \u05d0\u05e0\u05d0 \u05e6\u05e8\u05d5 \u05e7\u05e9\u05e8 \u05e2\u05dd \u05e6\u05d5\u05d5\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1.",
|
||||
"Server Error, Please refresh the page and try again.": "\u05e9\u05d2\u05d9\u05d0\u05ea \u05e9\u05e8\u05ea, \u05e8\u05e2\u05e0\u05df \u05d0\u05ea \u05d4\u05d3\u05e3 \u05d5\u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1.",
|
||||
"Set as a Special Exam": "\u05d4\u05d2\u05d3\u05e8 \u05db\u05de\u05d1\u05d7\u05df \u05de\u05d9\u05d5\u05d7\u05d3",
|
||||
"Settings": "\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea",
|
||||
"Set up your certificate": "\u05d4\u05d2\u05d3\u05e8 \u05d0\u05ea \u05ea\u05e2\u05d5\u05d3\u05ea\u05da",
|
||||
"Settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea",
|
||||
"Share": "\u05e9\u05ea\u05e3",
|
||||
"Share Alike": "\u05e9\u05ea\u05e3",
|
||||
"Share on Mozilla Backpack": "\u05e9\u05ea\u05e3 \u05d1-Mozilla Backpack",
|
||||
"Share your \"%(display_name)s\" award": "\u05e9\u05ea\u05e3 \u05d0\u05ea \u05e4\u05e8\u05e1 \"%(display_name)s\"",
|
||||
"Short explanation": "\u05d4\u05e1\u05d1\u05e8 \u05e7\u05e6\u05e8",
|
||||
@@ -1041,7 +1170,9 @@
|
||||
"\u05d4\u05e6\u05d2 \u05ea\u05d2\u05d5\u05d1\u05d4 (%(num_comments)s)",
|
||||
"\u05d4\u05e6\u05d2 \u05ea\u05d2\u05d5\u05d1\u05d5\u05ea (%(num_comments)s)"
|
||||
],
|
||||
"Show Deprecated Settings": "\u05d4\u05e6\u05d2 \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05de\u05d9\u05d5\u05e9\u05e0\u05d5\u05ea",
|
||||
"Show Discussion": "\u05d4\u05e8\u05d0\u05d4 \u05d3\u05d9\u05d5\u05df",
|
||||
"Show Previews": "\u05d4\u05e8\u05d0\u05d4 \u05ea\u05e6\u05d5\u05d2\u05d5\u05ea \u05de\u05e7\u05d3\u05d9\u05de\u05d5\u05ea",
|
||||
"Show blocks": "\u05d4\u05e8\u05d0\u05d4 \u05d1\u05dc\u05d5\u05e7\u05d9\u05dd",
|
||||
"Show invisible characters": "\u05d4\u05e8\u05d0\u05d4 \u05ea\u05d5\u05d5\u05d9\u05dd \u05de\u05d5\u05e1\u05ea\u05e8\u05d9\u05dd",
|
||||
"Show me other ways to sign in or register": "\u05d4\u05e6\u05d2 \u05d1\u05e4\u05e0\u05d9\u05d9 \u05d3\u05e8\u05db\u05d9\u05dd \u05d0\u05d7\u05e8\u05d5\u05ea \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05dc\u05d7\u05e9\u05d1\u05d5\u05df \u05d0\u05d5 \u05dc\u05d4\u05d9\u05e8\u05e9\u05dd",
|
||||
@@ -1052,6 +1183,10 @@
|
||||
"\u05de\u05e6\u05d9\u05d2 \u05ea\u05d2\u05d5\u05d1\u05d4 \u05e8\u05d0\u05e9\u05d5\u05e0\u05d4",
|
||||
"\u05de\u05e6\u05d9\u05d2 %(numResponses)s \u05ea\u05d2\u05d5\u05d1\u05d5\u05ea \u05e8\u05d0\u05e9\u05d5\u05e0\u05d5\u05ea"
|
||||
],
|
||||
"Showing {currentItemRange} out of {totalItemsCount}, filtered by {assetType}, sorted by {sortName} ascending": "\u05de\u05e6\u05d9\u05d2 {currentItemRange} \u05de\u05ea\u05d5\u05da {totalItemsCount}, \u05de\u05de\u05d5\u05d9\u05df \u05e2\u05dc \u05e4\u05d9 {assetType}, \u05d1\u05e1\u05d3\u05e8 \u05e2\u05d5\u05dc\u05d4 \u05e9\u05dc {sortName} ",
|
||||
"Showing {currentItemRange} out of {totalItemsCount}, filtered by {assetType}, sorted by {sortName} descending": "\u05de\u05e6\u05d9\u05d2 {currentItemRange} \u05de\u05ea\u05d5\u05da {totalItemsCount}, \u05de\u05de\u05d5\u05d9\u05df \u05e2\u05dc \u05e4\u05d9 {assetType}, \u05d1\u05e1\u05d3\u05e8 \u05d9\u05d5\u05e8\u05d3 \u05e9\u05dc {sortName} ",
|
||||
"Showing {currentItemRange} out of {totalItemsCount}, sorted by {sortName} ascending": "\u05de\u05e6\u05d9\u05d2 {currentItemRange} \u05de\u05ea\u05d5\u05da {totalItemsCount}, \u05de\u05de\u05d5\u05d9\u05df \u05d1\u05e1\u05d3\u05e8 \u05e2\u05d5\u05dc\u05d4 \u05e9\u05dc {sortName} ",
|
||||
"Showing {currentItemRange} out of {totalItemsCount}, sorted by {sortName} descending": "\u05de\u05e6\u05d9\u05d2 {currentItemRange} \u05de\u05ea\u05d5\u05da {totalItemsCount}, \u05de\u05de\u05d5\u05d9\u05df \u05d1\u05e1\u05d3\u05e8 \u05d9\u05d5\u05e8\u05d3 \u05e9\u05dc {sortName} ",
|
||||
"Sign in": "\u05db\u05e0\u05d9\u05e1\u05d4",
|
||||
"Sign in here using your email address and password, or use one of the providers listed below.": "\u05d4\u05d9\u05db\u05e0\u05e1 \u05db\u05d0\u05df \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05d5\u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da \u05d0\u05d5 \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d0\u05d7\u05d3 \u05de\u05d4\u05e1\u05e4\u05e7\u05d9\u05dd \u05e9\u05e8\u05e9\u05d5\u05de\u05d9\u05dd \u05d1\u05d4\u05de\u05e9\u05da.",
|
||||
"Sign in here using your email address and password.": "\u05d4\u05d9\u05db\u05e0\u05e1 \u05db\u05d0\u05df \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05d5\u05d4\u05e1\u05d9\u05e1\u05de\u05d4.",
|
||||
@@ -1059,6 +1194,7 @@
|
||||
"Sign in with %(providerName)s": "\u05d4\u05d9\u05db\u05e0\u05e1 \u05dc\u05d7\u05e9\u05d1\u05d5\u05df \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea %(providerName)s",
|
||||
"Sign in with Institution/Campus Credentials": "\u05d4\u05d9\u05db\u05e0\u05e1 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05e8\u05e9\u05d0\u05d5\u05ea \u05de\u05d5\u05e1\u05d3/\u05e7\u05de\u05e4\u05d5\u05e1",
|
||||
"Signatory": "\u05d7\u05ea\u05d9\u05de\u05d4",
|
||||
"Signatory field(s) has invalid data.": "\u05d1\u05e9\u05d3\u05d4(\u05d5\u05ea) \u05d4\u05d7\u05ea\u05d9\u05de\u05d4 \u05e7\u05d9\u05d9\u05de\u05d9\u05dd \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05dc\u05d0 \u05d7\u05d5\u05e7\u05d9\u05d9\u05dd.",
|
||||
"Signature Image": "\u05ea\u05de\u05d5\u05e0\u05ea \u05d7\u05ea\u05d9\u05de\u05d4",
|
||||
"Skip": "\u05d3\u05dc\u05d2",
|
||||
"Some Rights Reserved": "\u05d7\u05dc\u05e7 \u05de\u05d4\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05e9\u05de\u05d5\u05e8\u05d5\u05ea",
|
||||
@@ -1066,6 +1202,7 @@
|
||||
"Something went wrong changing this enrollment. Please try again.": "\u05de\u05e9\u05d4\u05d5 \u05d4\u05e9\u05ea\u05d1\u05e9 \u05d1\u05e2\u05ea \u05e9\u05d9\u05e0\u05d5\u05d9 \u05d4\u05e8\u05e9\u05de\u05d4 \u05d6\u05d5. \u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1.",
|
||||
"Sorry": "\u05e1\u05dc\u05d9\u05d7\u05d4",
|
||||
"Sorry, no results were found.": "\u05de\u05e6\u05d8\u05e2\u05e8\u05d9\u05dd, \u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d5 \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea. ",
|
||||
"Sorry, there was an error parsing the subtitles that you uploaded. Please check the format and try again.": "\u05d0\u05e0\u05d5 \u05de\u05e6\u05d8\u05e2\u05e8\u05d9\u05dd, \u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e0\u05d9\u05ea\u05d5\u05d7 \u05d4\u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea \u05e9\u05d4\u05e2\u05dc\u05ea. \u05d0\u05e0\u05d0 \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05d4\u05ea\u05d1\u05e0\u05d9\u05ea \u05d5\u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1. ",
|
||||
"Sorted by": "\u05de\u05d9\u05d5\u05df \u05e2\u05dc \u05d9\u05d3\u05d9",
|
||||
"Source": "\u05de\u05e7\u05d5\u05e8",
|
||||
"Source code": "\u05e7\u05d5\u05d3 \u05de\u05e7\u05d5\u05e8",
|
||||
@@ -1099,6 +1236,7 @@
|
||||
"Student": "\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8",
|
||||
"Student Removed from certificate white list successfully.": "\u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05d4\u05d5\u05e1\u05e8 \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4 \u05de\u05d4\u05e8\u05e9\u05d9\u05de\u05d4 \u05d4\u05d1\u05d8\u05d5\u05d7\u05d4 \u05e9\u05dc \u05d4\u05ea\u05e2\u05d5\u05d3\u05d5\u05ea.",
|
||||
"Student username/email field is required and can not be empty. ": "\u05e9\u05d3\u05d4 \u05e9\u05dd \u05d4\u05de\u05e9\u05ea\u05de\u05e9/\u05d3\u05d5\u05d0\"\u05dc \u05e9\u05dc \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4 \u05d5\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e9\u05d0\u05d9\u05e8\u05d5 \u05e8\u05d9\u05e7. ",
|
||||
"Studio's having trouble saving your work": "\u05e1\u05d8\u05d5\u05d3\u05d9\u05d5 \u05de\u05ea\u05e7\u05e9\u05d4 \u05dc\u05e9\u05de\u05d5\u05e8 \u05d0\u05ea \u05e2\u05d1\u05d5\u05d3\u05ea\u05da",
|
||||
"Studio:": "\u05e1\u05d8\u05d5\u05d3\u05d9\u05d5:",
|
||||
"Style": "\u05e1\u05d2\u05e0\u05d5\u05df",
|
||||
"Subject": "\u05e0\u05d5\u05e9\u05d0",
|
||||
@@ -1130,6 +1268,8 @@
|
||||
"Take Your Photo": "\u05e6\u05dc\u05dd \u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05ea\u05da",
|
||||
"Take a Photo of Your ID": "\u05e6\u05dc\u05dd \u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc \u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05d6\u05d4\u05d4 \u05e9\u05dc\u05da",
|
||||
"Take a photo of your ID": "\u05e6\u05dc\u05dd \u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc \u05ea\u05e2\u05d5\u05d3\u05ea \u05d4\u05d6\u05d4\u05d5\u05ea \u05e9\u05dc\u05da",
|
||||
"Take me to the main course page": "\u05e2\u05d1\u05d5\u05e8 \u05dc\u05e2\u05de\u05d5\u05d3 \u05d4\u05e7\u05d5\u05e8\u05e1 \u05d4\u05e8\u05d0\u05e9\u05d9",
|
||||
"Take me to the main library page": "\u05e2\u05d1\u05d5\u05e8 \u05dc\u05e2\u05de\u05d5\u05d3 \u05d4\u05e1\u05e4\u05e8\u05d9\u05d4 \u05d4\u05e8\u05d0\u05e9\u05d9",
|
||||
"Target": "\u05d9\u05e2\u05d3",
|
||||
"Task ID": "\u05de\u05d6\u05d4\u05d4 \u05de\u05e9\u05d9\u05de\u05d4",
|
||||
"Task Progress": "\u05d4\u05ea\u05e7\u05d3\u05de\u05d5\u05ea \u05d1\u05de\u05e9\u05d9\u05de\u05d4",
|
||||
@@ -1155,6 +1295,7 @@
|
||||
"Text to display": "\u05d8\u05e7\u05e1\u05d8 \u05dc\u05d4\u05e6\u05d2\u05d4",
|
||||
"Textbook Name": "\u05e9\u05dd \u05e1\u05e4\u05e8 \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
"Textbook information": "\u05de\u05d9\u05d3\u05e2 \u05e2\u05dc \u05e1\u05e4\u05e8 \u05d4\u05e7\u05d5\u05e8\u05e1",
|
||||
"Textbook name is required": "\u05e9\u05dd \u05e1\u05e4\u05e8 \u05d4\u05dc\u05d9\u05de\u05d5\u05d3 \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
|
||||
"Thank you for submitting your financial assistance application for {course_name}! You can expect a response in 2-4 business days.": "\u05ea\u05d5\u05d3\u05d4 \u05e9\u05e9\u05dc\u05d7\u05ea \u05d0\u05ea \u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d9\u05ea \u05d4\u05e1\u05d9\u05d5\u05e2 \u05d4\u05db\u05e1\u05e4\u05d9 \u05e9\u05dc\u05da \u05dc-{course_name}! \u05ea\u05d5\u05db\u05dc \u05dc\u05e6\u05e4\u05d5\u05ea \u05dc\u05ea\u05e9\u05d5\u05d1\u05d4 \u05d1\u05ea\u05d5\u05da 2-4 \u05d9\u05de\u05d9 \u05e2\u05e1\u05e7\u05d9\u05dd.",
|
||||
"Thank you for submitting your photos. We will review them shortly. You can now sign up for any %(platformName)s course that offers verified certificates. Verification is good for one year. After one year, you must submit photos for verification again.": "\u05ea\u05d5\u05d3\u05d4 \u05e2\u05dc \u05e9\u05d4\u05d2\u05e9\u05ea \u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05d5\u05ea\u05d9\u05da. \u05d0\u05e0\u05d7\u05e0\u05d5 \u05e0\u05d1\u05d3\u05d5\u05e7 \u05d0\u05d5\u05ea\u05df \u05d1\u05e7\u05e8\u05d5\u05d1. \u05d0\u05ea\u05d4 \u05e2\u05db\u05e9\u05d9\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05e8\u05e9\u05dd \u05dc\u05db\u05dc \u05e7\u05d5\u05e8\u05e1\u05d9 %(platformName)s \u05e9\u05de\u05e6\u05d9\u05e2\u05d9\u05dd \u05ea\u05e2\u05d5\u05d3\u05d4 \u05e2\u05dd \u05d6\u05d4\u05d5\u05ea \u05de\u05d0\u05d5\u05de\u05ea\u05ea. \u05d0\u05d9\u05de\u05d5\u05ea \u05d4\u05d6\u05d4\u05d5\u05ea \u05e9\u05dc\u05da \u05ea\u05e7\u05e3 \u05dc\u05e9\u05e0\u05d4 \u05d0\u05d7\u05ea. \u05dc\u05d0\u05d7\u05e8 \u05e9\u05e0\u05d4, \u05e2\u05dc\u05d9\u05da \u05dc\u05d4\u05d2\u05d9\u05e9 \u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05dc\u05d0\u05d9\u05de\u05d5\u05ea \u05d7\u05d5\u05d6\u05e8.",
|
||||
"Thank you! We have received your payment for {courseName}.": "\u05ea\u05d5\u05d3\u05d4! \u05e7\u05d9\u05d1\u05dc\u05e0\u05d5 \u05d0\u05ea \u05d4\u05ea\u05e9\u05dc\u05d5\u05dd \u05e9\u05dc\u05da \u05e2\u05d1\u05d5\u05e8 {courseName}.",
|
||||
@@ -1164,10 +1305,17 @@
|
||||
"The certificate for this learner has been re-validated and the system is re-running the grade for this learner.": "\u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05e9\u05dc \u05ea\u05dc\u05de\u05d9\u05d3 \u05d6\u05d4 \u05d0\u05d5\u05de\u05ea\u05d4 \u05de\u05d7\u05d3\u05e9 \u05d5\u05d4\u05de\u05e2\u05e8\u05db\u05ea \u05de\u05e8\u05d9\u05e6\u05d4 \u05de\u05d7\u05d3\u05e9 \u05d0\u05ea \u05d4\u05e6\u05d9\u05d5\u05df \u05e2\u05d1\u05d5\u05e8 \u05ea\u05dc\u05de\u05d9\u05d3 \u05d6\u05d4.",
|
||||
"The cohort cannot be added": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05d0\u05ea \u05e7\u05d1\u05d5\u05e6\u05ea \u05d4\u05dc\u05d9\u05de\u05d5\u05d3",
|
||||
"The cohort cannot be saved": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05e9\u05de\u05d5\u05e8 \u05d0\u05ea \u05e7\u05d1\u05d5\u05e6\u05ea \u05d4\u05dc\u05d9\u05de\u05d5\u05d3",
|
||||
"The combined length of the organization and library code fields cannot be more than <%=limit%> characters.": "\u05d4\u05d0\u05d5\u05e8\u05da \u05d4\u05de\u05e9\u05d5\u05dc\u05d1 \u05e9\u05dc \u05e9\u05d3\u05d5\u05ea \u05d4\u05d0\u05e8\u05d2\u05d5\u05df \u05d5\u05e7\u05d5\u05d3 \u05d4\u05e1\u05e4\u05e8\u05d9\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05e2\u05dc\u05d5\u05ea \u05e2\u05dc <%=limit%> \u05ea\u05d5\u05d5\u05d9\u05dd.",
|
||||
"The combined length of the organization, course number, and course run fields cannot be more than <%=limit%> characters.": "\u05d4\u05d0\u05d5\u05e8\u05da \u05d4\u05de\u05e9\u05d5\u05dc\u05d1 \u05e9\u05dc \u05e9\u05d3\u05d5\u05ea \u05d4\u05d0\u05e8\u05d2\u05d5\u05df, \u05de\u05e1\u05e4\u05e8 \u05d4\u05e7\u05d5\u05e8\u05e1 \u05d5\u05d4\u05e8\u05e6\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05e2\u05dc\u05d5\u05ea \u05e2\u05dc <%=limit%> \u05ea\u05d5\u05d5\u05d9\u05dd.",
|
||||
"The country that team members primarily identify with.": "\u05d4\u05d0\u05e8\u05e5 \u05d4\u05e2\u05d9\u05e7\u05e8\u05d9\u05ea \u05e9\u05d7\u05d1\u05e8\u05d9 \u05d4\u05e6\u05d5\u05d5\u05ea \u05de\u05d6\u05d3\u05d4\u05d9\u05dd \u05d0\u05d9\u05ea\u05d4.",
|
||||
"The course end date must be later than the course start date.": "\u05ea\u05d0\u05e8\u05d9\u05da \u05e1\u05d9\u05d5\u05dd \u05d4\u05e7\u05d5\u05e8\u05e1 \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05d0\u05d5\u05d7\u05e8 \u05d9\u05d5\u05ea\u05e8 \u05de\u05ea\u05d0\u05e8\u05d9\u05da \u05ea\u05d7\u05d9\u05dc\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1.",
|
||||
"The course must have an assigned start date.": "\u05dc\u05e7\u05d5\u05e8\u05e1 \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05ea\u05d7\u05dc\u05d4 \u05e7\u05d1\u05d5\u05e2",
|
||||
"The course start date must be later than the enrollment start date.": "\u05ea\u05d0\u05e8\u05d9\u05da \u05ea\u05d7\u05d9\u05dc\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1 \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05d0\u05d5\u05d7\u05e8 \u05d9\u05d5\u05ea\u05e8 \u05de\u05ea\u05d0\u05e8\u05d9\u05da \u05ea\u05d7\u05d9\u05dc\u05ea \u05d4\u05d4\u05e8\u05e9\u05de\u05d4.",
|
||||
"The data could not be saved.": "\u05d4\u05de\u05d9\u05d3\u05e2 \u05dc\u05d0 \u05d9\u05db\u05dc \u05dc\u05d4\u05d9\u05e9\u05de\u05e8 ",
|
||||
"The email address you use to sign in. Communications from {platform_name} and your courses are sent to this address.": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05e9\u05d0\u05ea\u05d4 \u05de\u05e9\u05ea\u05de\u05e9 \u05d1\u05d4 \u05db\u05d3\u05d9 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1. \u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05de-{platform_name} \u05d5\u05de\u05d4\u05e7\u05d5\u05e8\u05e1\u05d9\u05dd \u05e9\u05dc\u05da \u05e0\u05e9\u05dc\u05d7\u05d5\u05ea \u05dc\u05db\u05ea\u05d5\u05d1\u05ea \u05d6\u05d5.",
|
||||
"The email address you've provided isn't formatted correctly.": "\u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05e9\u05e1\u05d9\u05e4\u05e7\u05ea \u05d0\u05d9\u05e0\u05d4 \u05de\u05e4\u05d5\u05e8\u05de\u05d8\u05ea \u05db\u05d4\u05dc\u05db\u05d4.",
|
||||
"The enrollment end date cannot be after the course end date.": "\u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05e1\u05d9\u05d5\u05dd \u05dc\u05d4\u05e8\u05e9\u05de\u05d4 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05dc\u05d0\u05d7\u05e8 \u05ea\u05d0\u05e8\u05d9\u05da \u05e1\u05d9\u05d5\u05dd \u05d4\u05e7\u05d5\u05e8\u05e1. ",
|
||||
"The enrollment start date cannot be after the enrollment end date.": "\u05ea\u05d0\u05e8\u05d9\u05da \u05d4\u05ea\u05d7\u05dc\u05ea \u05d4\u05d4\u05e8\u05e9\u05de\u05d4 \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d0\u05d9\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05d5\u05ea \u05dc\u05e4\u05e0\u05d9 \u05ea\u05d0\u05e8\u05d9\u05da \u05e1\u05d9\u05d5\u05dd \u05d4\u05d4\u05e8\u05e9\u05de\u05d4 \u05dc\u05e7\u05d5\u05e8\u05e1.",
|
||||
"The file must be at least {size} in size.": "\u05e2\u05dc \u05d2\u05d5\u05d3\u05dc \u05d4\u05e7\u05d5\u05d1\u05e5 \u05dc\u05d4\u05d9\u05d5\u05ea \u05dc\u05e4\u05d7\u05d5\u05ea {size}.",
|
||||
"The file must be smaller than {size} in size.": "\u05e2\u05dc \u05d2\u05d5\u05d3\u05dc \u05d4\u05e7\u05d5\u05d1\u05e5 \u05dc\u05d4\u05d9\u05d5\u05ea \u05e7\u05d8\u05df \u05de{size}.",
|
||||
"The following email addresses and/or usernames are invalid:": "\u05db\u05ea\u05d5\u05d1\u05d5\u05ea \u05d4\u05d3\u05d5\u05d0\u05e8 \u05d4\u05d0\u05dc\u05e7\u05d8\u05e8\u05d5\u05e0\u05d9 \u05d4\u05d1\u05d0\u05d5\u05ea \u05d5 / \u05d0\u05d5 \u05e9\u05de\u05d5\u05ea \u05d4\u05de\u05e9\u05ea\u05de\u05e9 \u05d0\u05d9\u05e0\u05df \u05d7\u05d5\u05e7\u05d9\u05d5\u05ea:",
|
||||
@@ -1181,6 +1329,7 @@
|
||||
"The grading process is still running. Refresh the page to see updates.": "\u05ea\u05d4\u05dc\u05d9\u05da \u05d4\u05d3\u05d9\u05e8\u05d5\u05d2 \u05de\u05de\u05e9\u05d9\u05da \u05dc\u05e4\u05e2\u05d5\u05dc. \u05e8\u05e2\u05e0\u05df \u05d0\u05ea \u05d4\u05d3\u05e3 \u05db\u05d3\u05d9 \u05dc\u05e8\u05d0\u05d5\u05ea \u05e2\u05d3\u05db\u05d5\u05e0\u05d9\u05dd.",
|
||||
"The language that team members primarily use to communicate with each other.": "\u05d4\u05e9\u05e4\u05d4 \u05d4\u05e2\u05d9\u05e7\u05e8\u05d9\u05ea \u05e9\u05d7\u05d1\u05e8\u05d9 \u05d4\u05e6\u05d5\u05d5\u05ea \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05db\u05d3\u05d9 \u05dc\u05ea\u05e7\u05e9\u05e8 \u05d6\u05d4 \u05e2\u05dd \u05d6\u05d4.",
|
||||
"The language used throughout this site. This site is currently available in a limited number of languages.": "\u05d4\u05e9\u05e4\u05d4 \u05e9\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d1\u05d4 \u05d1\u05d0\u05ea\u05e8 \u05d6\u05d4. \u05d0\u05ea\u05e8 \u05d6\u05d4 \u05d6\u05de\u05d9\u05df \u05db\u05e8\u05d2\u05e2 \u05d1\u05de\u05e1\u05e4\u05e8 \u05de\u05d5\u05d2\u05d1\u05dc \u05e9\u05dc \u05e9\u05e4\u05d5\u05ea.",
|
||||
"The minimum grade for course credit is not set.": "\u05d4\u05e6\u05d9\u05d5\u05df \u05d4\u05de\u05d9\u05e0\u05d9\u05de\u05dc\u05d9 \u05dc\u05e7\u05d1\u05dc \u05e0\u05e7\u05d5\u05d3\u05d5\u05ea \u05d6\u05db\u05d5\u05ea \u05d1\u05e7\u05d5\u05e8\u05e1 \u05d0\u05d9\u05e0\u05d5 \u05de\u05d5\u05d2\u05d3\u05e8.",
|
||||
"The minimum score percentage must be a whole number between 0 and 100.": "\u05d0\u05d7\u05d5\u05d6 \u05d4\u05e6\u05d9\u05d5\u05df \u05d4\u05de\u05d9\u05e0\u05d9\u05de\u05dc\u05d9 \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05e1\u05e4\u05e8 \u05e9\u05dc\u05dd \u05d1\u05d9\u05df 0 \u05dc-100.",
|
||||
"The name of this signatory as it should appear on certificates.": "\u05e9\u05dd \u05d7\u05ea\u05d9\u05de\u05d4 \u05d6\u05d5 \u05db\u05e4\u05d9 \u05e9\u05d4\u05d5\u05d0 \u05d0\u05de\u05d5\u05e8 \u05dc\u05d4\u05d5\u05e4\u05d9\u05e2 \u05d1\u05ea\u05e2\u05d5\u05d3\u05d5\u05ea.",
|
||||
"The name that identifies you throughout {platform_name}. You cannot change your username.": "\u05d4\u05e9\u05dd \u05e9\u05de\u05d6\u05d4\u05d4 \u05d0\u05d5\u05ea\u05da \u05d3\u05e8\u05da {platform_name}. \u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05e9\u05e0\u05d5\u05ea \u05d0\u05ea \u05e9\u05dd \u05d4\u05de\u05e9\u05ea\u05de\u05e9.",
|
||||
@@ -1189,24 +1338,38 @@
|
||||
"The number of subsections in the course that contain problems of this assignment type.": "\u05de\u05e1\u05e4\u05e8 \u05ea\u05ea\u05d9 \u05d4\u05e1\u05e2\u05d9\u05e4\u05d9\u05dd \u05d1\u05e7\u05d5\u05e8\u05e1 \u05e9\u05de\u05db\u05d9\u05dc \u05d1\u05e2\u05d9\u05d5\u05ea \u05e9\u05dc \u05e1\u05d5\u05d2 \u05de\u05e9\u05d9\u05de\u05d4 \u05d6\u05d4.",
|
||||
"The organization that this signatory belongs to, as it should appear on certificates.": "\u05d4\u05d0\u05e8\u05d2\u05d5\u05df \u05e9\u05d4\u05d7\u05ea\u05d9\u05de\u05d4 \u05e9\u05d9\u05d9\u05db\u05ea \u05dc\u05d5, \u05db\u05e4\u05d9 \u05e9\u05d4\u05d9\u05d0 \u05d0\u05de\u05d5\u05e8\u05d4 \u05dc\u05d4\u05d5\u05e4\u05d9\u05e2 \u05d1\u05ea\u05e2\u05d5\u05d3\u05d4.",
|
||||
"The photo of your face matches the photo on your ID.": "\u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc \u05e4\u05e0\u05d9\u05da \u05ea\u05d5\u05d0\u05de\u05ea \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05d1\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05d6\u05d4\u05d4 \u05e9\u05dc\u05da.",
|
||||
"The raw error message is:": "\u05d4\u05d5\u05d3\u05e2\u05ea \u05d4\u05e9\u05d2\u05d9\u05d0\u05d4 \u05d4\u05d2\u05d5\u05dc\u05de\u05d9\u05ea \u05d4\u05d9\u05d0:",
|
||||
"The selected content group does not exist": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05d4\u05ea\u05d5\u05db\u05df \u05e9\u05e0\u05d1\u05d7\u05e8\u05d4 \u05d0\u05d9\u05e0\u05d4 \u05e7\u05d9\u05d9\u05de\u05ea",
|
||||
"The thread you selected has been deleted. Please select another thread.": "\u05d4\u05e9\u05e8\u05e9\u05d5\u05e8 \u05e9\u05d1\u05d7\u05e8\u05ea \u05e0\u05de\u05d7\u05e7. \u05d0\u05e0\u05d0 \u05d1\u05d7\u05e8 \u05e9\u05e8\u05e9\u05d5\u05e8 \u05d0\u05d7\u05e8. ",
|
||||
"The timed transcript for the first video file does not appear to be the same as the timed transcript for the second video file.": "\u05e0\u05e8\u05d0\u05d4 \u05e9\u05d4\u05ea\u05de\u05dc\u05d9\u05dc \u05d4\u05de\u05ea\u05d5\u05d6\u05de\u05df \u05dc\u05e7\u05d5\u05d1\u05e5 \u05d4\u05d5\u05d5\u05d9\u05d3\u05d0\u05d5 \u05d4\u05e8\u05d0\u05e9\u05d5\u05df \u05d0\u05d9\u05e0\u05d5 \u05d3\u05d5\u05de\u05d4 \u05dc\u05ea\u05de\u05dc\u05d9\u05dc \u05d4\u05de\u05ea\u05d5\u05d6\u05de\u05df \u05e9\u05dc \u05e7\u05d5\u05d1\u05e5 \u05d4\u05d5\u05d5\u05d9\u05d3\u05d0\u05d5 \u05d4\u05e9\u05e0\u05d9.",
|
||||
"The timed transcript for this video on edX is out of date, but YouTube has a current timed transcript for this video.": "\u05d4\u05ea\u05de\u05dc\u05d9\u05dc \u05d4\u05de\u05ea\u05d5\u05d6\u05de\u05df \u05e2\u05d1\u05d5\u05e8 \u05d5\u05d9\u05d3\u05d9\u05d0\u05d5 \u05d6\u05d4 \u05d1edX \u05de\u05d9\u05d5\u05e9\u05df, \u05d0\u05d1\u05dc \u05d9\u05e9 \u05dcYouTube \u05d2\u05e8\u05e1\u05d0 \u05e2\u05d3\u05db\u05e0\u05d9\u05ea \u05e2\u05d1\u05d5\u05e8 \u05d5\u05d9\u05d3\u05d9\u05d0\u05d5 \u05d6\u05d4.",
|
||||
"The weight of all assignments of this type as a percentage of the total grade, for example, 40. Do not include the percent symbol.": "\u05de\u05e9\u05e7\u05dc \u05db\u05dc \u05d4\u05de\u05e9\u05d9\u05de\u05d5\u05ea \u05e9\u05dc \u05e1\u05d5\u05d2 \u05d6\u05d4 \u05d4\u05d5\u05d0 \u05db\u05d0\u05d7\u05d5\u05d6 \u05de\u05e1\u05da \u05d4\u05e6\u05d9\u05d5\u05df, \u05dc\u05d3\u05d5\u05d2\u05de\u05d4, 40. \u05d0\u05dc \u05ea\u05db\u05dc\u05d5\u05dc \u05d0\u05ea \u05e1\u05de\u05dc \u05d4\u05d0\u05d7\u05d5\u05d6.",
|
||||
"The {cohortGroupName} cohort has been created. You can manually add students to this cohort below.": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05d4\u05dc\u05d9\u05de\u05d5\u05d3 {cohortGroupName} \u05e0\u05d5\u05e6\u05e8\u05d4. \u05d0\u05ea\u05d4 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05d1\u05e6\u05d5\u05e8\u05d4 \u05d9\u05d3\u05e0\u05d9\u05ea \u05dc\u05e7\u05d1\u05d5\u05e6\u05ea \u05dc\u05d9\u05de\u05d5\u05d3 \u05d6\u05d5. ",
|
||||
"There has been a failure to export to XML at least one component. It is recommended that you go to the edit page and repair the error before attempting another export. Please check that all components on the page are valid and do not display any error messages.": "\u05d9\u05e6\u05d5\u05d0 \u05e9\u05dc \u05e8\u05db\u05d9\u05d1 \u05d0\u05d7\u05d3 \u05dc\u05e4\u05d7\u05d5\u05ea \u05dc-XML, \u05e0\u05db\u05e9\u05dc. \u05de\u05d5\u05de\u05dc\u05e5 \u05dc\u05d2\u05e9\u05ea \u05dc\u05e2\u05de\u05d5\u05d3 \u05d4\u05e2\u05e8\u05d9\u05db\u05d4 \u05d5\u05dc\u05ea\u05e7\u05df \u05d0\u05ea \u05d4\u05e9\u05d2\u05d9\u05d0\u05d4 \u05dc\u05e4\u05e0\u05d9 \u05d1\u05d9\u05e6\u05d5\u05e2 \u05d9\u05e6\u05d5\u05d0 \u05e0\u05d5\u05e1\u05e3. \u05d0\u05e0\u05d0 \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05d7\u05d5\u05e7\u05d9\u05d5\u05ea \u05db\u05dc \u05d4\u05e8\u05db\u05d9\u05d1\u05d9\u05dd \u05d1\u05e2\u05de\u05d5\u05d3 \u05d5\u05db\u05d9 \u05d4\u05dd \u05d0\u05d9\u05e0\u05dd \u05de\u05e6\u05d9\u05d2\u05d9\u05dd \u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05e9\u05d2\u05d9\u05d0\u05d4. ",
|
||||
"There has been an error processing your survey.": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e2\u05d9\u05d1\u05d5\u05d3 \u05d4\u05e1\u05e7\u05e8 \u05e9\u05dc\u05da.",
|
||||
"There has been an error while exporting.": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05de\u05d4\u05dc\u05da \u05d4\u05d9\u05d9\u05e6\u05d5\u05d0.",
|
||||
"There has been an error with your export.": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d9\u05d9\u05e6\u05d5\u05d0 \u05e9\u05dc\u05da. ",
|
||||
"There is invalid code in your content. Please check to make sure it is valid HTML.": "\u05d9\u05e9 \u05e7\u05d5\u05d3 \u05dc\u05d0 \u05d7\u05d5\u05e7\u05d9 \u05d1\u05ea\u05d5\u05db\u05df \u05e9\u05dc\u05da. \u05d0\u05e0\u05d0 \u05d5\u05d3\u05d0 \u05db\u05d9 \u05d6\u05d4\u05d5 HTML \u05d7\u05d5\u05e7\u05d9.",
|
||||
"There is no email history for this course.": "\u05d0\u05d9\u05df \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05ea \u05d3\u05d5\u05d0\"\u05dc \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d6\u05d4.",
|
||||
"There must be at least one group.": "\u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05d9\u05d5\u05ea \u05dc\u05e4\u05d7\u05d5\u05ea \u05e7\u05d1\u05d5\u05e6\u05d4 \u05d0\u05d7\u05ea.",
|
||||
"There must be one cohort to which students can automatically be assigned.": "\u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05d9\u05d5\u05ea \u05e7\u05d1\u05d5\u05e6\u05ea \u05dc\u05d9\u05de\u05d5\u05d3 \u05d0\u05d7\u05ea \u05e9\u05d0\u05dc\u05d9\u05d9\u05d4 \u05e0\u05d9\u05ea\u05df \u05dc\u05e9\u05d9\u05d9\u05da \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05d1\u05d0\u05d5\u05e4\u05df \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9.",
|
||||
"There was a problem creating the report. Select \"Create Executive Summary\" to try again.": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05d1\u05e2\u05d9\u05d4 \u05d1\u05e2\u05ea \u05d9\u05e6\u05d9\u05e8\u05ea \u05d4\u05d3\u05d5\u05d7. \u05d1\u05d7\u05e8 \"\u05e6\u05d5\u05e8 \u05ea\u05e7\u05e6\u05d9\u05e8 \u05de\u05e0\u05d4\u05dc\u05d9\u05dd\" \u05db\u05d3\u05d9 \u05dc\u05e0\u05e1\u05d5\u05ea \u05e9\u05d5\u05d1.",
|
||||
"There was an error changing the user's role": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e9\u05d9\u05e0\u05d5\u05d9 \u05ea\u05e4\u05e7\u05d9\u05d3 \u05d4\u05de\u05e9\u05ea\u05de\u05e9.",
|
||||
"There was an error during the upload process.": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05de\u05d4\u05dc\u05da \u05ea\u05d4\u05dc\u05d9\u05da \u05d4\u05e2\u05dc\u05d0\u05ea \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd.",
|
||||
"There was an error obtaining email content history for this course.": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e7\u05d1\u05dc\u05ea \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05ea \u05d4\u05ea\u05d5\u05db\u05df \u05e9\u05dc \u05d3\u05d5\u05d0\"\u05dc \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d6\u05d4.",
|
||||
"There was an error obtaining email task history for this course.": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e7\u05d1\u05dc\u05ea \u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05ea \u05de\u05e9\u05d9\u05de\u05d5\u05ea \u05d3\u05d5\u05d0\"\u05dc \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d6\u05d4.",
|
||||
"There was an error when trying to add students:": [
|
||||
"\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05e2\u05ea \u05e0\u05d9\u05e1\u05d9\u05d5\u05df \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd:",
|
||||
"\u05d4\u05d9\u05d5 {numErrors} \u05e9\u05d2\u05d9\u05d0\u05d5\u05ea \u05d1\u05e2\u05ea \u05e0\u05d9\u05e1\u05d9\u05d5\u05df \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd:"
|
||||
],
|
||||
"There was an error while importing the new course to our database.": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05de\u05d4\u05dc\u05da \u05d9\u05d1\u05d5\u05d0 \u05d4\u05e7\u05d5\u05e8\u05e1 \u05d4\u05d7\u05d3\u05e9 \u05dc\u05d1\u05e1\u05d9\u05e1 \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc\u05e0\u05d5.",
|
||||
"There was an error while importing the new library to our database.": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05de\u05d4\u05dc\u05da \u05d9\u05d1\u05d5\u05d0 \u05d4\u05e1\u05e4\u05e8\u05d9\u05d9\u05d4 \u05d4\u05d7\u05d3\u05e9\u05d4 \u05dc\u05d1\u05e1\u05d9\u05e1 \u05d4\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc\u05e0\u05d5.",
|
||||
"There was an error while unpacking the file.": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d4\u05d5\u05e8\u05d3\u05ea \u05d4\u05e7\u05d5\u05d1\u05e5.",
|
||||
"There was an error while verifying the file you submitted.": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d6\u05de\u05df \u05d0\u05d9\u05de\u05d5\u05ea \u05d4\u05e7\u05d5\u05d1\u05e5 \u05e9\u05d4\u05d2\u05e9\u05ea.",
|
||||
"There was an error with the upload": "\u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d4\u05e2\u05dc\u05d0\u05d4",
|
||||
"There was an error, try searching again.": "\u05d0\u05d9\u05e8\u05e2\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4, \u05e0\u05e1\u05d4 \u05dc\u05d7\u05e4\u05e9 \u05e9\u05d5\u05d1.",
|
||||
"There were errors reindexing course.": "\u05e7\u05e8\u05d5 \u05e9\u05d2\u05d9\u05d0\u05d5\u05ea \u05d1\u05de\u05d9\u05d5\u05df \u05de\u05d7\u05d3\u05e9 \u05e9\u05dc \u05d4\u05e7\u05d5\u05e8\u05e1.",
|
||||
"There's already another assignment type with this name.": "\u05d9\u05e9 \u05db\u05d1\u05e8 \u05e1\u05d5\u05d2 \u05de\u05e9\u05d9\u05de\u05d4 \u05d0\u05d7\u05e8 \u05d1\u05e2\u05dc \u05e9\u05dd \u05d6\u05d4.",
|
||||
"These users were not added as beta testers:": "\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d0\u05dc\u05d4 \u05dc\u05d0 \u05e0\u05d5\u05e1\u05e4\u05d5 \u05db\u05d1\u05d5\u05d3\u05e7\u05d9 \u05d4\u05d1\u05d8\u05d0:",
|
||||
"These users were not affiliated with the course so could not be unenrolled:": "\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d0\u05dc\u05d4 \u05dc\u05d0 \u05d4\u05d9\u05d5 \u05e7\u05e9\u05d5\u05e8\u05d9\u05dd \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d5\u05dc\u05db\u05df \u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d1\u05d8\u05dc \u05d4\u05e8\u05e9\u05de\u05ea\u05dd:",
|
||||
"These users were not removed as beta testers:": "\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d0\u05dc\u05d4 \u05dc\u05d0 \u05d4\u05d5\u05e1\u05e8\u05d5 \u05db\u05d1\u05d5\u05d3\u05e7\u05d9 \u05d4\u05d1\u05d8\u05d0:",
|
||||
@@ -1216,11 +1379,14 @@
|
||||
"These users will be enrolled once they register:": "\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d4\u05d1\u05d0\u05d9\u05dd \u05d9\u05d9\u05e8\u05e9\u05de\u05d5 \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d1\u05e8\u05d2\u05e2 \u05e9\u05d4\u05dd \u05d9\u05d9\u05e8\u05e9\u05de\u05d5 \u05dc\u05d0\u05ea\u05e8:",
|
||||
"This Group Configuration is not in use. Start by adding a content experiment to any Unit via the {linkStart}Course Outline{linkEnd}.": "\u05d4\u05d2\u05d3\u05e8\u05ea \u05ea\u05e6\u05d5\u05e8\u05d4 \u05e9\u05dc \u05e7\u05d1\u05d5\u05e6\u05d4 \u05d6\u05d5 \u05d0\u05d9\u05e0\u05d4 \u05d1\u05e9\u05d9\u05de\u05d5\u05e9. \u05d4\u05ea\u05d7\u05dc \u05e2\u05dc \u05d9\u05d3\u05d9 \u05d4\u05d5\u05e1\u05e4 \u05e0\u05d9\u05e1\u05d5\u05d9 \u05ea\u05d5\u05db\u05df \u05dc\u05db\u05dc \u05d9\u05d7\u05d9\u05d3\u05d4 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea {linkStart}\u05ea\u05e8\u05e9\u05d9\u05dd \u05d4\u05e7\u05d5\u05e8\u05e1{linkEnd}.",
|
||||
"This Group Configuration is used in:": "\u05d4\u05d2\u05d3\u05e8\u05ea \u05d4\u05e7\u05d1\u05d5\u05e6\u05d4 \u05d1\u05e9\u05d9\u05de\u05d5\u05e9 \u05d1:",
|
||||
"This action cannot be undone.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d1\u05d8\u05dc \u05e4\u05e2\u05d5\u05dc\u05d4 \u05d6\u05d5.",
|
||||
"This annotation has %(count)s flag.": [
|
||||
"\u05dc\u05d4\u05e2\u05e8\u05d4 \u05d6\u05d5 \u05d9\u05e9 \u05d3\u05d2\u05dc %(count)s.",
|
||||
"\u05dc\u05d4\u05e2\u05e8\u05d4 \u05d6\u05d5 \u05d9\u05e9 %(count)s \u05d3\u05d2\u05dc\u05d9\u05dd."
|
||||
],
|
||||
"This browser cannot play .mp4, .ogg, or .webm files.": "\u05d3\u05e4\u05d3\u05e4\u05df \u05d6\u05d4 \u05dc\u05d0 \u05d9\u05db\u05d5\u05dc \u05dc\u05e0\u05d2\u05df \u05e7\u05d1\u05e6\u05d9 ogg .webm ,.mp4.",
|
||||
"This certificate has already been activated and is live. Are you sure you want to continue editing?": "\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d6\u05d5 \u05d4\u05d5\u05e4\u05e2\u05dc\u05d4 \u05db\u05d1\u05e8 \u05d5\u05d4\u05d9\u05d0 \u05d1\u05de\u05e6\u05d1 \u05e4\u05e2\u05d9\u05dc. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05de\u05e9\u05d9\u05da \u05d1\u05e2\u05e8\u05d9\u05db\u05d4?",
|
||||
"This component has validation issues.": "\u05dc\u05e8\u05db\u05d9\u05d1 \u05d6\u05d4 \u05d1\u05e2\u05d9\u05d5\u05ea \u05d0\u05d9\u05de\u05d5\u05ea.",
|
||||
"This configuration is currently used in content experiments. If you make changes to the groups, you may need to edit those experiments.": "\u05d4\u05d2\u05d3\u05e8\u05d4 \u05d6\u05d5 \u05d1\u05e9\u05d9\u05de\u05d5\u05e9 \u05db\u05e2\u05ea \u05d1\u05e0\u05d9\u05e1\u05d5\u05d9 \u05ea\u05d5\u05db\u05df. \u05d0\u05dd \u05ea\u05e9\u05e0\u05d4 \u05d0\u05ea \u05d4\u05e7\u05d1\u05d5\u05e6\u05d5\u05ea, \u05d9\u05ea\u05db\u05df \u05e9\u05ea\u05e6\u05d8\u05e8\u05da \u05dc\u05e2\u05e8\u05d5\u05da \u05e0\u05d9\u05e1\u05d5\u05d9\u05d9\u05dd \u05d0\u05dc\u05d5.",
|
||||
"This content group is not in use. Add a content group to any unit from the {linkStart}Course Outline{linkEnd}.": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df \u05d6\u05d5 \u05d0\u05d9\u05e0\u05d4 \u05d1\u05e9\u05d9\u05de\u05d5\u05e9. \u05d4\u05d5\u05e1\u05e3 \u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df \u05dc\u05db\u05dc \u05d9\u05d7\u05d9\u05d3\u05d4 \u05de{linkStart}\u05ea\u05e8\u05e9\u05d9\u05dd \u05d4\u05e7\u05d5\u05e8\u05e1{linkEnd}.",
|
||||
"This content group is used in one or more units.": "\u05e0\u05e2\u05e9\u05d4 \u05e9\u05d9\u05de\u05d5\u05e9 \u05d1\u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df \u05d6\u05d5 \u05d1\u05d9\u05d7\u05d9\u05d3\u05d4 \u05d0\u05d7\u05ea \u05d0\u05d5 \u05d9\u05d5\u05ea\u05e8. ",
|
||||
@@ -1231,6 +1397,9 @@
|
||||
"This is the name of the group": "\u05d6\u05d4 \u05d4\u05d5\u05d0 \u05d4\u05e9\u05dd \u05e9\u05dc \u05d4\u05e7\u05d1\u05d5\u05e6\u05d4",
|
||||
"This learner is currently sharing a limited profile.": "\u05ea\u05dc\u05de\u05d9\u05d3 \u05d6\u05d4 \u05de\u05e9\u05ea\u05e3 \u05db\u05e8\u05d2\u05e2 \u05e4\u05e8\u05d5\u05e4\u05d9\u05dc \u05de\u05d5\u05d2\u05d1\u05dc.",
|
||||
"This learner will be removed from the team, allowing another learner to take the available spot.": "\u05ea\u05dc\u05de\u05d9\u05d3 \u05d6\u05d4 \u05d9\u05d5\u05e1\u05e8 \u05de\u05d4\u05e6\u05d5\u05d5\u05ea, \u05db\u05da \u05e9\u05d9\u05ea\u05d0\u05e4\u05e9\u05e8 \u05dc\u05ea\u05dc\u05de\u05d9\u05d3 \u05d0\u05d7\u05e8 \u05dc\u05d4\u05e6\u05d8\u05e8\u05e3 \u05dc\u05de\u05e7\u05d5\u05dd \u05d4\u05e4\u05e0\u05d5\u05d9.",
|
||||
"This link will open in a modal window": "\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d6\u05d4 \u05d9\u05e4\u05ea\u05d7 \u05d1\u05d7\u05dc\u05d5\u05df \u05d7\u05d3\u05e9",
|
||||
"This link will open in a new browser window/tab": "\u05e7\u05d9\u05e9\u05d5\u05e8 \u05d6\u05d4 \u05d9\u05d9\u05e4\u05ea\u05d7 \u05d1\u05d7\u05dc\u05d5\u05df/\u05dc\u05e9\u05d5\u05e0\u05d9\u05ea \u05d3\u05e4\u05d3\u05e4\u05df \u05d7\u05d3\u05e9/\u05d4",
|
||||
"This may be happening because of an error with our server or your internet connection. Try refreshing the page or making sure you are online.": "\u05d9\u05d9\u05ea\u05db\u05df \u05d5\u05d3\u05d1\u05e8 \u05d6\u05d4 \u05de\u05ea\u05e8\u05d7\u05e9 \u05d1\u05e9\u05dc \u05d8\u05e2\u05d5\u05ea \u05d1\u05e9\u05e8\u05ea \u05e9\u05dc\u05e0\u05d5 \u05d0\u05d5 \u05d1\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d4\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8. \u05e0\u05e1\u05d4 \u05dc\u05e8\u05e2\u05e0\u05df \u05d0\u05ea \u05d4\u05d3\u05e3 \u05d0\u05d5 \u05d5\u05d3\u05d0 \u05e9\u05d4\u05d9\u05e0\u05da \u05de\u05e7\u05d5\u05d5\u05df.",
|
||||
"This post is visible only to %(group_name)s.": "\u05e4\u05d5\u05e1\u05d8 \u05d6\u05d4 \u05d2\u05dc\u05d5\u05d9 \u05e8\u05e7 \u05dc-%(group_name)s.",
|
||||
"This post is visible to everyone.": "\u05e4\u05d5\u05e1\u05d8 \u05d6\u05d4 \u05d2\u05dc\u05d5\u05d9 \u05dc\u05db\u05d5\u05dc\u05dd.",
|
||||
"This short name for the assignment type (for example, HW or Midterm) appears next to assignments on a learner's Progress page.": "\u05e9\u05dd \u05e7\u05e6\u05e8 \u05d6\u05d4 \u05dc\u05e1\u05d5\u05d2 \u05d4\u05de\u05e9\u05d9\u05de\u05d4 (\u05dc\u05d3\u05d5\u05d2\u05de\u05d4, \u05e9\"\u05d1 \u05d0\u05d5 \u05de\u05d1\u05d7\u05df \u05d0\u05de\u05e6\u05e2) \u05de\u05d5\u05e4\u05d9\u05e2 \u05dc\u05d9\u05d3 \u05d4\u05de\u05e9\u05d9\u05de\u05d5\u05ea \u05e9\u05d1\u05d3\u05e3 \u05d4\u05d4\u05ea\u05e7\u05d3\u05de\u05d5\u05ea \u05e9\u05dc \u05ea\u05dc\u05de\u05d9\u05d3.",
|
||||
@@ -1284,6 +1453,7 @@
|
||||
"Underline": "\u05e7\u05d5 \u05ea\u05d7\u05ea\u05d5\u05df",
|
||||
"Undo": "\u05d1\u05d8\u05dc",
|
||||
"Undo (Ctrl+Z)": "\u05d1\u05d8\u05dc (Ctrl+Z) ",
|
||||
"Undo Changes": "\u05d1\u05d8\u05dc \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd",
|
||||
"Unendorse": "\u05d1\u05d8\u05dc \u05d0\u05d9\u05e9\u05d5\u05e8",
|
||||
"Unfollow": "\u05d1\u05d8\u05dc \u05de\u05e2\u05e7\u05d1",
|
||||
"Ungraded": "\u05dc\u05dc\u05d0 \u05e6\u05d9\u05d5\u05df",
|
||||
@@ -1305,6 +1475,7 @@
|
||||
"Update post": "\u05e2\u05d3\u05db\u05df \u05e4\u05d5\u05e1\u05d8",
|
||||
"Update response": "\u05e2\u05d3\u05db\u05df \u05ea\u05d2\u05d5\u05d1\u05d4",
|
||||
"Update team.": "\u05e2\u05d3\u05db\u05df \u05e6\u05d5\u05d5\u05ea.",
|
||||
"Updating Tags": "\u05e2\u05d3\u05db\u05d5\u05df \u05ea\u05d2\u05d9\u05dd",
|
||||
"Updating with latest library content": "\u05de\u05e2\u05d3\u05db\u05df \u05e2\u05dd \u05d4\u05ea\u05d5\u05db\u05df \u05d4\u05e2\u05d3\u05db\u05e0\u05d9 \u05d1\u05d9\u05d5\u05ea\u05e8",
|
||||
"Upgrade Deadline": "\u05de\u05d5\u05e2\u05d3 \u05e9\u05d3\u05e8\u05d5\u05d2",
|
||||
"Upgrade to a Verified Certificate for {courseName}": "\u05e9\u05d3\u05e8\u05d2 \u05dc\u05ea\u05e2\u05d5\u05d3\u05d4 \u05de\u05d0\u05d5\u05de\u05ea\u05ea \u05e2\u05d1\u05d5\u05e8 {courseName}",
|
||||
@@ -1317,10 +1488,19 @@
|
||||
"Upload PDF": "\u05d4\u05e2\u05dc\u05d4 PDF",
|
||||
"Upload Signature Image": "\u05d4\u05e2\u05dc\u05d4 \u05ea\u05de\u05d5\u05e0\u05ea \u05d7\u05ea\u05d9\u05de\u05d4",
|
||||
"Upload a comma separated values (.csv) file that contains the usernames or email addresses of learners who have been given exceptions. Include the username or email address in the first comma separated field. You can include an optional note describing the reason for the exception in the second comma separated field.": "\u05d4\u05e2\u05dc\u05d4 \u05e7\u05d5\u05d1\u05e5 (\u200e.csv) \u05e9\u05dc \u05e2\u05e8\u05db\u05d9\u05dd \u05de\u05d5\u05e4\u05e8\u05d3\u05d9\u05dd \u05d1\u05e4\u05e1\u05d9\u05e7 \u05e9\u05de\u05db\u05d9\u05dc \u05d0\u05ea \u05e9\u05de\u05d5\u05ea \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d0\u05d5 \u05db\u05ea\u05d5\u05d1\u05d5\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05e9\u05dc \u05d4\u05ea\u05dc\u05de\u05d9\u05d3\u05d9\u05dd \u05e9\u05e7\u05d9\u05d1\u05dc\u05d5 \u05d7\u05e8\u05d9\u05d2\u05d5\u05ea. \u05db\u05dc\u05d5\u05dc \u05d0\u05ea \u05e9\u05dd \u05d4\u05de\u05e9\u05ea\u05de\u05e9 \u05d0\u05d5 \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05d1\u05d3\u05d4 \u05d4\u05de\u05d5\u05e4\u05e8\u05d3 \u05d1\u05e4\u05e1\u05d9\u05e7 \u05d4\u05e8\u05d0\u05e9\u05d5\u05df. \u05d1\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea\u05da \u05dc\u05db\u05dc\u05d5\u05dc \u05d4\u05e2\u05e8\u05d4 \u05d0\u05d5\u05e4\u05e6\u05d9\u05d5\u05e0\u05dc\u05d9\u05ea \u05e9\u05de\u05ea\u05d0\u05e8\u05ea \u05d0\u05ea \u05d4\u05e1\u05d9\u05d1\u05d4 \u05dc\u05d7\u05e8\u05d9\u05d2\u05d4 \u05d1\u05e9\u05d3\u05d4 \u05d4\u05de\u05d5\u05e4\u05e8\u05d3 \u05d1\u05e4\u05e1\u05d9\u05e7 \u05d4\u05e9\u05e0\u05d9.",
|
||||
"Upload a new PDF to \u201c<%= name %>\u201d": "\u05d4\u05e2\u05dc\u05d4 \u05e7\u05d5\u05d1\u05e5 PDF \u05d7\u05d3\u05e9 \u05dc\u201c<%= name %>\u201d",
|
||||
"Upload an image": "\u05d4\u05e2\u05dc\u05d4 \u05ea\u05de\u05d5\u05e0\u05d4",
|
||||
"Upload an image or capture one with your web or phone camera.": "\u05d4\u05e2\u05dc\u05d4 \u05ea\u05de\u05d5\u05e0\u05d4 \u05d0\u05d5 \u05e6\u05dc\u05dd \u05d0\u05d7\u05ea \u05e2\u05dd \u05de\u05e6\u05dc\u05de\u05ea \u05d4\u05e8\u05e9\u05ea \u05d0\u05d5 \u05de\u05e6\u05dc\u05de\u05ea \u05d4\u05d8\u05dc\u05e4\u05d5\u05df \u05e9\u05dc\u05da. ",
|
||||
"Upload completed": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05d4\u05d5\u05e9\u05dc\u05de\u05d4",
|
||||
"Upload failed": "\u05d4\u05e2\u05dc\u05d0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4",
|
||||
"Upload instructor image.": "\u05d4\u05e2\u05dc\u05d4 \u05ea\u05de\u05d5\u05e0\u05ea \u05de\u05d3\u05e8\u05d9\u05da.",
|
||||
"Upload is in progress. To avoid errors, stay on this page until the process is complete.": "\u05d1\u05ea\u05d4\u05dc\u05d9\u05da \u05d4\u05e2\u05dc\u05d0\u05d4. \u05d1\u05db\u05d3\u05d9 \u05dc\u05d4\u05d9\u05de\u05e0\u05e2 \u05de\u05e9\u05d2\u05d9\u05d0\u05d5\u05ea, \u05d4\u05d9\u05e9\u05d0\u05e8 \u05d1\u05e2\u05de\u05d5\u05d3 \u05d6\u05d4 \u05e2\u05d3 \u05e9\u05d4\u05ea\u05d4\u05dc\u05d9\u05da \u05d9\u05d5\u05e9\u05dc\u05dd.",
|
||||
"Upload signature image.": "\u05d4\u05e2\u05dc\u05d4 \u05ea\u05de\u05d5\u05e0\u05ea \u05d7\u05ea\u05d9\u05de\u05d4.",
|
||||
"Upload translation": "\u05d4\u05e2\u05dc\u05d4 \u05ea\u05e8\u05d2\u05d5\u05dd",
|
||||
"Upload your banner image.": "\u05d4\u05e2\u05dc\u05d4 \u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05ea \u05d4\u05d1\u05d0\u05e0\u05e8.",
|
||||
"Upload your course image.": "\u05d4\u05e2\u05dc\u05d4 \u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1 \u05e9\u05dc\u05da.",
|
||||
"Upload your first asset": "\u05d4\u05e2\u05dc\u05d4 \u05d0\u05ea \u05d4\u05e0\u05db\u05e1 \u05d4\u05e8\u05d0\u05e9\u05d5\u05df \u05e9\u05dc\u05da",
|
||||
"Upload your video thumbnail image.": "\u05d4\u05e2\u05dc\u05d4 \u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05ea \u05d4\u05d5\u05d5\u05d9\u05d3\u05d0\u05d5 \u05d4\u05de\u05de\u05d5\u05d6\u05e2\u05e8\u05ea",
|
||||
"Uploaded file issues. Click on \"+\" to view.": "\u05d1\u05e2\u05d9\u05d5\u05ea \u05d1\u05d4\u05e2\u05dc\u05d0\u05ea \u05e7\u05d5\u05d1\u05e5. \u05dc\u05d7\u05e5 \u05e2\u05dc \"+\" \u05db\u05d3\u05d9 \u05dc\u05d4\u05e6\u05d9\u05d2.",
|
||||
"Uploading": "\u05de\u05e2\u05dc\u05d4",
|
||||
"Upper Alpha": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d2\u05d3\u05d5\u05dc\u05d5\u05ea",
|
||||
@@ -1338,6 +1518,10 @@
|
||||
"Use your webcam to take a photo of your ID. We will match this photo with the photo of your face and the name on your account.": "\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05de\u05e6\u05dc\u05de\u05ea \u05d4\u05e8\u05e9\u05ea \u05e9\u05dc\u05da \u05dc\u05e6\u05dc\u05dd \u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc \u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05d6\u05d4\u05d4 \u05e9\u05dc\u05da. \u05d0\u05e0\u05d5 \u05e0\u05ea\u05d0\u05d9\u05dd \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05d4\u05d6\u05d5 \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc \u05d4\u05e4\u05e8\u05e6\u05d5\u05e3 \u05e9\u05dc\u05da \u05d5\u05dc\u05e9\u05dd \u05d4\u05d7\u05e9\u05d1\u05d5\u05df \u05e9\u05dc\u05da. ",
|
||||
"Use your webcam to take a photo of your face. We will match this photo with the photo on your ID.": "\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05de\u05e6\u05dc\u05de\u05ea \u05d4\u05e8\u05e9\u05ea \u05e9\u05dc\u05da \u05dc\u05e6\u05dc\u05dd \u05d0\u05ea \u05d4\u05e4\u05e8\u05d5\u05e6\u05e3 \u05e9\u05dc\u05da. \u05d0\u05e0\u05d7\u05e0\u05d5 \u05e0\u05e9\u05d5\u05d5\u05d4 \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05dc\u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc\u05da \u05d1\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05d6\u05d4\u05d4.",
|
||||
"Used": "\u05e0\u05e2\u05e9\u05d4 \u05e9\u05d9\u05de\u05d5\u05e9",
|
||||
"Used in {count} unit": [
|
||||
"\u05e0\u05e2\u05e9\u05d4 \u05e9\u05d9\u05de\u05d5\u05e9 \u05d1\u05d9\u05d7\u05d9\u05d3\u05d4 {count}",
|
||||
"\u05e0\u05e2\u05e9\u05d4 \u05e9\u05d9\u05de\u05d5\u05e9 \u05d1-{count} \u05d9\u05d7\u05d9\u05d3\u05d5\u05ea"
|
||||
],
|
||||
"User": "\u05de\u05e9\u05ea\u05de\u05e9",
|
||||
"User Email": "\u05d3\u05d5\u05d0\"\u05dc \u05e9\u05dc \u05de\u05e9\u05ea\u05de\u05e9",
|
||||
"Username": "\u05e9\u05dd \u05de\u05e9\u05ea\u05de\u05e9",
|
||||
@@ -1347,6 +1531,7 @@
|
||||
"V Align": "\u05d9\u05d9\u05e9\u05d5\u05e8 \u05d0\u05e0\u05db\u05d9",
|
||||
"Valid": "\u05d7\u05d5\u05e7\u05d9",
|
||||
"Validation Error": "\u05e9\u05d2\u05d9\u05d0\u05ea \u05d0\u05d9\u05de\u05d5\u05ea",
|
||||
"Validation Error While Saving": "\u05d8\u05e2\u05d5\u05ea \u05d0\u05d9\u05de\u05d5\u05ea \u05d1\u05de\u05d4\u05dc\u05da \u05e9\u05de\u05d9\u05e8\u05d4",
|
||||
"Verification Checkpoint": "\u05e0\u05e7\u05d5\u05d3\u05ea \u05d1\u05d9\u05e7\u05d5\u05e8\u05ea \u05dc\u05d0\u05d9\u05de\u05d5\u05ea",
|
||||
"Verification Deadline": "\u05de\u05d5\u05e2\u05d3 \u05d0\u05d7\u05e8\u05d5\u05df \u05dc\u05d0\u05d9\u05de\u05d5\u05ea",
|
||||
"Verification checkpoint to be completed": "\u05d9\u05e9 \u05dc\u05d4\u05e9\u05dc\u05d9\u05dd \u05e0\u05e7\u05d5\u05d3\u05ea \u05d1\u05d9\u05e7\u05d5\u05e8\u05ea \u05dc\u05d0\u05d9\u05de\u05d5\u05ea",
|
||||
@@ -1356,6 +1541,7 @@
|
||||
"Verified Status": "\u05de\u05e6\u05d1 \u05d0\u05d9\u05de\u05d5\u05ea \u05d6\u05d4\u05d5\u05ea",
|
||||
"Verified mode price": "\u05de\u05d7\u05d9\u05e8 \u05de\u05e6\u05d1 \u05de\u05d0\u05d5\u05de\u05ea",
|
||||
"Verify Now": "\u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da \u05e2\u05db\u05e9\u05d9\u05d5",
|
||||
"Version": "\u05d2\u05e8\u05e1\u05d4",
|
||||
"Vertical space": "\u05e8\u05d5\u05d5\u05d7 \u05d0\u05e0\u05db\u05d9",
|
||||
"Very loud": "\u05d1\u05e7\u05d5\u05dc \u05e8\u05d1 \u05de\u05d0\u05d5\u05d3",
|
||||
"Very low": "\u05e0\u05de\u05d5\u05da \u05de\u05d0\u05d5\u05d3",
|
||||
@@ -1384,6 +1570,7 @@
|
||||
"Vote for good posts and responses": "\u05d4\u05e6\u05d1\u05e2 \u05dc\u05e4\u05d5\u05e1\u05d8\u05d9\u05dd \u05d5\u05ea\u05e9\u05d5\u05d1\u05d5\u05ea \u05d8\u05d5\u05d1\u05d9\u05dd",
|
||||
"Vote for this post,": "\u05d4\u05e6\u05d1\u05e2 \u05dc\u05e4\u05d5\u05e1\u05d8 \u05d6\u05d4,",
|
||||
"Want to confirm your identity later?": "\u05e8\u05d5\u05e6\u05d4 \u05dc\u05d0\u05de\u05ea \u05d0\u05ea \u05d6\u05d4\u05d5\u05ea\u05da \u05de\u05d0\u05d5\u05d7\u05e8 \u05d9\u05d5\u05ea\u05e8?",
|
||||
"Warning": "\u05d0\u05d6\u05d4\u05e8\u05d4",
|
||||
"Warnings": "\u05d0\u05d6\u05d4\u05e8\u05d5\u05ea",
|
||||
"We couldn't create your account.": "\u05dc\u05d0 \u05d4\u05e6\u05dc\u05d7\u05e0\u05d5 \u05dc\u05d9\u05e6\u05d5\u05e8 \u05d0\u05ea \u05d4\u05d7\u05e9\u05d1\u05d5\u05df \u05e9\u05dc\u05da. ",
|
||||
"We couldn't find any results for \"%s\".": "\u05dc\u05d0 \u05d9\u05db\u05d5\u05dc\u05e0\u05d5 \u05dc\u05de\u05e6\u05d5\u05d0 \u05d0\u05e3 \u05ea\u05d5\u05e6\u05d0\u05d4 \u05e2\u05d1\u05d5\u05e8 \"%s\".",
|
||||
@@ -1414,8 +1601,8 @@
|
||||
"We just need a little more information before you start learning with %(platformName)s.": "\u05d0\u05e0\u05d7\u05e0\u05d5 \u05e8\u05e7 \u05d6\u05e7\u05d5\u05e7\u05d9\u05dd \u05dc\u05e2\u05d5\u05d3 \u05de\u05e2\u05d8 \u05de\u05d9\u05d3\u05e2 \u05dc\u05e4\u05e0\u05d9 \u05e9\u05ea\u05ea\u05d7\u05d9\u05dc \u05dc\u05dc\u05de\u05d5\u05d3 \u05e2\u05dd %(platformName)s.",
|
||||
"We use the highest levels of security available to encrypt your photo and send it to our authorization service for review. Your photo and information are not saved or visible anywhere on %(platformName)s after the verification process is complete.": "\u05d0\u05e0\u05d5 \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d1\u05e8\u05de\u05d5\u05ea \u05d4\u05d2\u05d1\u05d5\u05d4\u05d5\u05ea \u05d1\u05d9\u05d5\u05ea\u05e8 \u05e9\u05dc \u05d0\u05d1\u05d8\u05d7\u05d4 \u05dc\u05d4\u05e6\u05e4\u05d9\u05df \u05d0\u05ea \u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc\u05da \u05d5\u05dc\u05e9\u05dc\u05d5\u05d7 \u05d0\u05d5\u05ea\u05d4 \u05dc\u05d1\u05d3\u05d9\u05e7\u05d4 \u05d1\u05e9\u05d9\u05e8\u05d5\u05ea \u05d4\u05d0\u05d9\u05de\u05d5\u05ea \u05e9\u05dc\u05e0\u05d5. \u05d4\u05ea\u05de\u05d5\u05e0\u05d4 \u05d5\u05d4\u05de\u05d9\u05d3\u05e2 \u05d4\u05d0\u05d9\u05e9\u05d9 \u05e9\u05dc\u05da \u05dc\u05d0 \u05e0\u05e9\u05de\u05e8\u05d9\u05dd \u05d0\u05d5 \u05d2\u05dc\u05d5\u05d9\u05d9\u05dd \u05d1\u05d0\u05e3 \u05de\u05e7\u05d5\u05dd \u05d1-%(platformName)s \u05dc\u05d0\u05d7\u05e8 \u05d4\u05e9\u05dc\u05de\u05ea \u05ea\u05d4\u05dc\u05d9\u05da \u05d0\u05d9\u05de\u05d5\u05ea \u05d4\u05d6\u05d4\u05d5\u05ea. ",
|
||||
"We weren't able to send you a password reset email.": "\u05dc\u05d0 \u05d4\u05e6\u05dc\u05d7\u05e0\u05d5 \u05dc\u05e9\u05dc\u05d5\u05d7 \u05dc\u05da \u05d3\u05d5\u05d0\u05e8 \u05d0\u05dc\u05e7\u05d8\u05e8\u05d5\u05e0\u05d9 \u05dc\u05d0\u05d9\u05e4\u05d5\u05e1 \u05e1\u05d9\u05e1\u05de\u05d4.",
|
||||
"We're sorry, there was an error": "\u05d0\u05e0\u05d5 \u05de\u05e6\u05d8\u05e2\u05e8\u05d9\u05dd, \u05e7\u05e8\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4",
|
||||
"We've encountered an error. Refresh your browser and then try again.": "\u05e0\u05ea\u05e7\u05dc\u05e0\u05d5 \u05d1\u05e9\u05d2\u05d9\u05d0\u05d4. \u05e8\u05e2\u05e0\u05df \u05d0\u05ea \u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da \u05d5\u05d0\u05d6 \u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1.",
|
||||
"We've sent instructions for resetting your password to the email address you provided.": "\u05e9\u05dc\u05d7\u05e0\u05d5 \u05d4\u05e0\u05d7\u05d9\u05d5\u05ea \u05dc\u05e9\u05d7\u05d6\u05d5\u05e8 \u05d4\u05e1\u05d9\u05e1\u05de\u05d4 \u05e9\u05dc\u05da \u05dc\u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05e9\u05e1\u05d9\u05e4\u05e7\u05ea.",
|
||||
"Web:": "\u05d5\u05d5\u05d1:",
|
||||
"Webcam": "\u05de\u05e6\u05dc\u05de\u05ea \u05e8\u05e9\u05ea",
|
||||
"Weight of Total Grade": "\u05de\u05e9\u05e7\u05dc \u05e9\u05dc \u05e1\u05da \u05d4\u05e6\u05d9\u05d5\u05df",
|
||||
@@ -1431,8 +1618,8 @@
|
||||
"Will Be Visible To:": "\u05d9\u05d4\u05d9\u05d4 \u05d2\u05dc\u05d5\u05d9 \u05e2\u05d1\u05d5\u05e8:",
|
||||
"Words: {0}": "\u05de\u05d9\u05dc\u05d9\u05dd: {0}",
|
||||
"Would you like to sign in using your %(providerName)s credentials?": "\u05d4\u05d0\u05dd \u05ea\u05e8\u05e6\u05d4 \u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05dc\u05d7\u05e9\u05d1\u05d5\u05df \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05e8\u05e9\u05d0\u05d5\u05ea %(providerName)s \u05e9\u05dc\u05da?",
|
||||
"XSeries Program Certificates": "\u05ea\u05e2\u05d5\u05d3\u05d5\u05ea \u05d4\u05ea\u05d5\u05db\u05e0\u05d9\u05ea XSeries",
|
||||
"Year of Birth": "\u05e9\u05e0\u05ea \u05dc\u05d9\u05d3\u05d4",
|
||||
"Yes, allow edits to the active Certificate": "\u05db\u05df, \u05d0\u05e4\u05e9\u05e8 \u05e2\u05e8\u05d9\u05db\u05d5\u05ea \u05d1\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05e4\u05e2\u05d9\u05dc\u05d4",
|
||||
"Yes, delete this %(xblock_type)s": "\u05db\u05df, \u05de\u05d7\u05e7 \u05d0\u05ea %(xblock_type)s",
|
||||
"Yes, replace the edX transcript with the YouTube transcript": "\u05db\u05df, \u05d4\u05d7\u05dc\u05e3 \u05d0\u05ea \u05d4\u05ea\u05de\u05dc\u05d9\u05dc \u05e9\u05dc edX \u05e2\u05dd \u05d4\u05ea\u05de\u05dc\u05d9\u05dc \u05e9\u05dc YouTube",
|
||||
"You already belong to another team.": "\u05d0\u05ea\u05d4 \u05e9\u05d9\u05d9\u05da \u05db\u05d1\u05e8 \u05dc\u05e6\u05d5\u05d5\u05ea \u05d0\u05d7\u05e8.",
|
||||
@@ -1440,7 +1627,6 @@
|
||||
"You are currently sharing a limited profile.": "\u05d0\u05ea\u05d4 \u05de\u05e9\u05ea\u05e3 \u05db\u05e8\u05d2\u05e2 \u05e4\u05e8\u05d5\u05e4\u05d9\u05dc \u05de\u05d5\u05d2\u05d1\u05dc.",
|
||||
"You are enrolling in: {courseName}": "\u05d0\u05ea\u05d4 \u05e0\u05e8\u05e9\u05dd \u05d1: {courseName}",
|
||||
"You are not currently a member of any team.": "\u05d0\u05d9\u05e0\u05da \u05d7\u05d1\u05e8 \u05db\u05e8\u05d2\u05e2 \u05d1\u05d0\u05e3 \u05e6\u05d5\u05d5\u05ea.",
|
||||
"You are not enrolled in any XSeries Programs yet.": "\u05e2\u05d3\u05d9\u05d9\u05df \u05d0\u05d9\u05e0\u05da \u05e8\u05e9\u05d5\u05dd \u05d1\u05d0\u05e3 \u05ea\u05d5\u05db\u05e0\u05d9\u05ea XSeries.",
|
||||
"You are now enrolled as a verified student for:": "\u05d0\u05ea\u05d4 \u05e2\u05db\u05e9\u05d9\u05d5 \u05e8\u05e9\u05d5\u05dd \u05db\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05e2\u05dd \u05d6\u05d4\u05d5\u05ea \u05de\u05d0\u05d5\u05de\u05ea\u05ea \u05e2\u05d1\u05d5\u05e8:",
|
||||
"You are upgrading your enrollment for: {courseName}": "\u05d0\u05ea\u05d4 \u05de\u05e9\u05d3\u05e8\u05d2 \u05d0\u05ea \u05d4\u05d4\u05e8\u05e9\u05de\u05d4 \u05e9\u05dc\u05da \u05dc: {courseName}",
|
||||
"You can now enter your payment information and complete your enrollment.": "\u05db\u05e2\u05ea \u05d0\u05ea\u05d4 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d6\u05d9\u05df \u05d0\u05ea \u05e4\u05e8\u05d8\u05d9 \u05d4\u05ea\u05e9\u05dc\u05d5\u05dd \u05e9\u05dc\u05da \u05d5\u05dc\u05d4\u05e9\u05dc\u05d9\u05dd \u05d0\u05ea \u05d4\u05e8\u05e9\u05de\u05ea\u05da.",
|
||||
@@ -1459,13 +1645,19 @@
|
||||
"You have earned certificates in %(completed_courses)s of the %(total_courses)s courses so far.": "\u05e2\u05d3 \u05db\u05d4 \u05d4\u05e9\u05d2\u05ea \u05ea\u05e2\u05d5\u05d3\u05d5\u05ea \u05d1-%(completed_courses)s \u05e7\u05d5\u05e8\u05e1\u05d9\u05dd \u05de\u05ea\u05d5\u05da %(total_courses)s.",
|
||||
"You have no handouts defined": "\u05dc\u05d0 \u05d4\u05d5\u05d2\u05d3\u05e8\u05d5 \u05d3\u05e4\u05d9 \u05de\u05d9\u05d3\u05e2",
|
||||
"You have not bookmarked any courseware pages yet.": "\u05e2\u05d3\u05d9\u05d9\u05df \u05dc\u05d0 \u05e1\u05d9\u05de\u05e0\u05ea \u05d1\u05e1\u05d9\u05de\u05e0\u05d9\u05d4 \u05d0\u05e3 \u05d3\u05e3 \u05e9\u05dc \u05ea\u05d5\u05db\u05e0\u05ea \u05d4\u05de\u05d7\u05e9\u05d1 \u05e9\u05dc \u05d4\u05e7\u05d5\u05e8\u05e1.",
|
||||
"You have not created any certificates yet.": "\u05dc\u05d0 \u05d9\u05e6\u05e8\u05ea \u05d0\u05e3 \u05ea\u05e2\u05d5\u05d3\u05d4 \u05e2\u05d3\u05d9\u05d9\u05df.",
|
||||
"You have not created any content groups yet.": " \u05dc\u05d0 \u05d9\u05e6\u05e8\u05ea \u05e2\u05d3\u05d9\u05d9\u05df \u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05ea\u05d5\u05db\u05df \u05db\u05dc\u05e9\u05d4\u05df.",
|
||||
"You have not created any group configurations yet.": "\u05dc\u05d0 \u05d9\u05e6\u05e8\u05ea \u05e2\u05d3\u05d9\u05d9\u05df \u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e7\u05d1\u05d5\u05e6\u05d4.",
|
||||
"You have successfully signed into %(currentProvider)s, but your %(currentProvider)s account does not have a linked %(platformName)s account. To link your accounts, sign in now using your %(platformName)s password.": "\u05e0\u05e8\u05e9\u05de\u05ea \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4 \u05dc-%(currentProvider)s, \u05d0\u05da \u05dc\u05d7\u05e9\u05d1\u05d5\u05df %(currentProvider)s\u05d0\u05d9\u05df \u05d7\u05e9\u05d1\u05d5\u05df %(platformName)s \u05de\u05e7\u05d5\u05e9\u05e8. \u05db\u05d3\u05d9 \u05dc\u05e7\u05e9\u05e8 \u05d0\u05ea \u05d7\u05e9\u05d1\u05d5\u05e0\u05d5\u05ea\u05d9\u05d9\u05da, \u05d4\u05d9\u05db\u05e0\u05e1 \u05db\u05e2\u05ea \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05e1\u05d9\u05e1\u05de\u05ea %(platformName)s.",
|
||||
"You have unsaved changes are you sure you want to navigate away?": "\u05d9\u05e9\u05e0\u05dd \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e9\u05dc\u05d0 \u05e0\u05e9\u05de\u05e8\u05d5, \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05e2\u05d6\u05d5\u05d1?",
|
||||
"You have unsaved changes. Do you really want to leave this page?": "\u05d9\u05e9\u05e0\u05dd \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e9\u05dc\u05d0 \u05e0\u05e9\u05de\u05e8\u05d5. \u05d4\u05d0\u05dd \u05d0\u05ea\u05d4 \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05e2\u05d6\u05d5\u05d1 \u05d3\u05e3 \u05d6\u05d4?",
|
||||
"You haven't added any assets to this course yet.": "\u05e2\u05d3\u05d9\u05d9\u05df \u05dc\u05d0 \u05d4\u05d5\u05e1\u05e4\u05ea \u05e0\u05db\u05e1\u05d9\u05dd \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d6\u05d4.",
|
||||
"You haven't added any content to this course yet.": "\u05e2\u05d3\u05d9\u05d9\u05df \u05dc\u05d0 \u05d4\u05d5\u05e1\u05e4\u05ea \u05ea\u05d5\u05db\u05df \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d6\u05d4.",
|
||||
"You haven't added any textbooks to this course yet.": "\u05e2\u05d3\u05d9\u05d9\u05df \u05dc\u05d0 \u05d4\u05d5\u05e1\u05e4\u05ea \u05e1\u05e4\u05e8\u05d9 \u05dc\u05d9\u05de\u05d5\u05d3 \u05dc\u05e7\u05d5\u05e8\u05e1 \u05d6\u05d4.",
|
||||
"You must be over 13 to share a full profile. If you are over 13, make sure that you have specified a birth year on the {account_settings_page_link}": "\u05e2\u05dc\u05d9\u05da \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05e2\u05dc \u05d2\u05d9\u05dc 13 \u05d1\u05db\u05d3\u05d9 \u05dc\u05e9\u05ea\u05e3 \u05d0\u05ea \u05de\u05d9\u05d3\u05e2 \u05d4\u05e4\u05e8\u05d5\u05e4\u05d9\u05dc \u05d4\u05de\u05dc\u05d0 \u05e9\u05dc\u05da. \u05d0\u05dd \u05d0\u05ea\u05d4 \u05de\u05e2\u05dc \u05d2\u05d9\u05dc 13, \u05d5\u05d3\u05d0 \u05e9\u05e6\u05d9\u05d9\u05e0\u05ea \u05d0\u05ea \u05e9\u05e0\u05ea \u05d4\u05dc\u05d9\u05d3\u05d4 \u05e9\u05dc\u05da \u05d1{account_settings_page_link}",
|
||||
"You must enter a valid email address in order to add a new team member": "\u05e2\u05dc\u05d9\u05da \u05dc\u05d4\u05d6\u05d9\u05df \u05db\u05ea\u05d5\u05d1\u05ea \u05d3\u05d5\u05d0\"\u05dc \u05ea\u05e7\u05d9\u05e0\u05d4 \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05d7\u05d1\u05e8 \u05e6\u05d5\u05d5\u05ea \u05d7\u05d3\u05e9.",
|
||||
"You must sign out and sign back in before your language changes take effect.": "\u05e2\u05dc\u05d9\u05da \u05dc\u05e6\u05d0\u05ea \u05de\u05d4\u05d7\u05e9\u05d1\u05d5\u05df \u05d5\u05dc\u05d4\u05d9\u05db\u05e0\u05e1 \u05d7\u05d6\u05e8\u05d4 \u05dc\u05e4\u05e0\u05d9 \u05e9\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9 \u05d4\u05e9\u05e4\u05d4 \u05d9\u05d9\u05db\u05e0\u05e1\u05d5 \u05dc\u05ea\u05d5\u05e7\u05e3.",
|
||||
"You must specify a name": "\u05e2\u05dc\u05d9\u05da \u05dc\u05ea\u05ea \u05e9\u05dd",
|
||||
"You must specify a name for the cohort": "\u05e2\u05dc\u05d9\u05da \u05dc\u05e6\u05d9\u05d9\u05df \u05e9\u05dd \u05e9\u05dc \u05e7\u05d1\u05d5\u05e6\u05ea \u05dc\u05d9\u05de\u05d5\u05d3",
|
||||
"You must specify your birth year before you can share your full profile. To specify your birth year, go to the {account_settings_page_link}": "\u05e2\u05dc\u05d9\u05da \u05dc\u05e6\u05d9\u05d9\u05df \u05d0\u05ea \u05e9\u05e0\u05ea \u05d4\u05dc\u05d9\u05d3\u05d4 \u05e9\u05dc\u05da \u05dc\u05e4\u05e0\u05d9 \u05e9\u05ea\u05d5\u05db\u05dc \u05dc\u05d7\u05dc\u05d5\u05e7 \u05d0\u05ea \u05d4\u05e4\u05e8\u05d5\u05e4\u05d9\u05dc \u05d4\u05de\u05dc\u05d0 \u05e9\u05dc\u05da. \u05d1\u05db\u05d3\u05d9 \u05dc\u05e6\u05d9\u05d9\u05df \u05d0\u05ea \u05e9\u05e0\u05ea \u05d4\u05dc\u05d9\u05d3\u05d4 \u05e9\u05dc\u05da \u05e2\u05d1\u05d5\u05e8 \u05dc{account_settings_page_link}",
|
||||
"You need a computer that has a webcam. When you receive a browser prompt, make sure that you allow access to the camera.": "\u05d0\u05ea\u05d4 \u05e6\u05e8\u05d9\u05da \u05de\u05d7\u05e9\u05d1 \u05e9\u05d9\u05e9 \u05dc\u05d5 \u05de\u05e6\u05dc\u05de\u05ea \u05e8\u05e9\u05ea. \u05db\u05d0\u05e9\u05e8 \u05d0\u05ea\u05d4 \u05de\u05e7\u05d1\u05dc \u05d4\u05e0\u05d7\u05d9\u05d9\u05ea \u05d3\u05e4\u05d3\u05e4\u05df, \u05d5\u05d3\u05d0 \u05e9\u05d0\u05ea\u05d4 \u05de\u05d0\u05e4\u05e9\u05e8 \u05d2\u05d9\u05e9\u05d4 \u05dc\u05de\u05e6\u05dc\u05de\u05d4.",
|
||||
@@ -1473,20 +1665,33 @@
|
||||
"You need an ID with your name and photo. A driver's license, passport, or other government-issued IDs are all acceptable.": "\u05d0\u05ea\u05d4 \u05d6\u05e7\u05d5\u05e7 \u05dc\u05ea\u05e2\u05d5\u05d3\u05d4 \u05de\u05d6\u05d4\u05d4 \u05e2\u05dd \u05d4\u05e9\u05dd \u05e9\u05dc\u05da \u05d5\u05e2\u05dd \u05ea\u05de\u05d5\u05e0\u05d4. \u05e0\u05d9\u05ea\u05df \u05dc\u05e1\u05e4\u05e7 \u05e8\u05e9\u05d9\u05d5\u05df \u05e0\u05d4\u05d9\u05d2\u05d4, \u05d3\u05e8\u05db\u05d5\u05df \u05d0\u05d5 \u05ea\u05e2\u05d5\u05d3\u05d4 \u05de\u05d6\u05d4\u05d4 \u05d0\u05d7\u05e8\u05ea \u05e9\u05d4\u05d5\u05e0\u05e4\u05e7\u05d4 \u05e2\u05dc \u05d9\u05d3\u05d9 \u05d4\u05de\u05de\u05e9\u05dc\u05d4. ",
|
||||
"You need to activate your account before you can enroll in courses. Check your inbox for an activation email.": "\u05d0\u05e0\u05d7\u05e0\u05d5 \u05e6\u05e8\u05d9\u05db\u05d9\u05dd \u05dc\u05d4\u05e4\u05e2\u05d9\u05dc \u05d0\u05ea \u05d4\u05d7\u05e9\u05d1\u05d5\u05df \u05e9\u05dc\u05da \u05dc\u05e4\u05e0\u05d9 \u05e9\u05d0\u05ea\u05d4 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05d9\u05e8\u05e9\u05dd \u05dc\u05e7\u05d5\u05e8\u05e1\u05d9\u05dd. \u05d7\u05e4\u05e9 \u05d4\u05d5\u05d3\u05e2\u05ea \u05d4\u05e4\u05e2\u05dc\u05d4 \u05d1\u05ea\u05d9\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\u05e8 \u05d4\u05d0\u05dc\u05e7\u05d8\u05e8\u05d5\u05e0\u05d9 \u05e9\u05dc\u05da.",
|
||||
"You need to activate your account before you can enroll in courses. Check your inbox for an activation email. After you complete activation you can return and refresh this page.": "\u05d0\u05ea\u05d4 \u05e6\u05e8\u05d9\u05da \u05dc\u05d4\u05e4\u05e2\u05d9\u05dc \u05d0\u05ea \u05d4\u05d7\u05e9\u05d1\u05d5\u05df \u05e9\u05dc\u05da \u05dc\u05e4\u05e0\u05d9 \u05e9\u05ea\u05d5\u05db\u05dc \u05dc\u05d4\u05d9\u05e8\u05e9\u05dd \u05dc\u05e7\u05d5\u05e8\u05e1. \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05ea\u05d9\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\u05e8 \u05d4\u05e0\u05db\u05e0\u05e1 \u05e9\u05dc\u05da \u05dc\u05d4\u05d5\u05d3\u05e2\u05ea \u05d4\u05e4\u05e2\u05dc\u05d4. \u05dc\u05d0\u05d7\u05e8 \u05e9\u05ea\u05e9\u05dc\u05d9\u05dd \u05d0\u05ea \u05e9\u05dc\u05d1 \u05d4\u05d4\u05e4\u05e2\u05dc\u05d4 \u05d0\u05ea\u05d4 \u05d9\u05db\u05d5\u05dc \u05dc\u05d7\u05d6\u05d5\u05e8 \u05d5\u05dc\u05e8\u05e2\u05e0\u05df \u05d3\u05e3 \u05d6\u05d4. ",
|
||||
"You reserve all rights for your work": " \u05db\u05dc \u05d4\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05e2\u05dc \u05e2\u05d1\u05d5\u05d3\u05ea\u05da \u05e9\u05de\u05d5\u05e8\u05d5\u05ea \u05e2\u05de\u05da.",
|
||||
"You still need to visit the %(display_name)s website to complete the credit process.": "\u05e2\u05d3\u05d9\u05d9\u05df \u05e2\u05dc\u05d9\u05da \u05dc\u05d1\u05e7\u05e8 \u05d1\u05d0\u05ea\u05e8 \u05d4\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8 %(display_name)s \u05db\u05d3\u05d9 \u05dc\u05d4\u05e9\u05dc\u05d9\u05dd \u05d0\u05ea \u05ea\u05d4\u05dc\u05d9\u05da \u05e7\u05d1\u05dc\u05ea \u05e0\u05e7\u05d5\u05d3\u05d5\u05ea \u05d4\u05d6\u05db\u05d5\u05ea.",
|
||||
"You waive some rights for your work, such that others can use it too": "\u05d0\u05ea\u05d4 \u05de\u05d5\u05d5\u05ea\u05e8 \u05e2\u05dc \u05db\u05de\u05d4 \u05de\u05d6\u05db\u05d5\u05d9\u05d5\u05ea\u05d9\u05d9\u05da \u05e2\u05dc \u05e2\u05d1\u05d5\u05d3\u05ea\u05da \u05db\u05d3\u05d9 \u05e9\u05d2\u05dd \u05d0\u05d7\u05e8\u05d9\u05dd \u05d9\u05d5\u05db\u05dc\u05d5 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d4",
|
||||
"You will not receive notification for emails that bounce, so double-check your spelling.": "\u05dc\u05d0 \u05ea\u05e7\u05d1\u05dc \u05d4\u05ea\u05e8\u05d0\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 \u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05d3\u05d5\u05d0\"\u05dc \u05e9\u05dc\u05d0 \u05d9\u05d2\u05d9\u05e2\u05d5 \u05dc\u05d9\u05e2\u05d3\u05df, \u05d0\u05d6 \u05d0\u05e0\u05d0 \u05d1\u05d3\u05d5\u05e7 \u05e9\u05d5\u05d1 \u05d0\u05ea \u05d4\u05d0\u05d9\u05d5\u05ea \u05e9\u05dc\u05da. ",
|
||||
"You will use your webcam to take a picture of your face and of your government-issued photo ID.": "\u05ea\u05e9\u05ea\u05de\u05e9 \u05d1\u05de\u05e6\u05dc\u05de\u05ea \u05d4\u05e8\u05e9\u05ea \u05db\u05d3\u05d9 \u05dc\u05e6\u05dc\u05dd \u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05dc \u05e4\u05e0\u05d9\u05da \u05d5\u05e9\u05dc \u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05de\u05e9\u05dc\u05ea\u05d9\u05ea \u05e2\u05dd \u05d4\u05ea\u05de\u05d5\u05e0\u05d4.",
|
||||
"You!": "\u05d0\u05ea\u05d4!",
|
||||
"You've made some changes": "\u05d1\u05d9\u05e6\u05e2\u05ea \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd",
|
||||
"You've made some changes, but there are some errors": "\u05d1\u05d9\u05e6\u05e2\u05ea \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05d0\u05da \u05d9\u05e9\u05e0\u05df \u05de\u05e1\u05e4\u05e8 \u05e9\u05d2\u05d9\u05d0\u05d5\u05ea",
|
||||
"You've successfully signed into %(currentProvider)s.": "\u05d4\u05ea\u05d7\u05d1\u05e8\u05ea \u05d1\u05d4\u05e6\u05dc\u05d7\u05d4 \u05dc%(currentProvider)s.",
|
||||
"Your ID must be a government-issued photo ID that clearly shows your face.": "\u05d4\u05ea\u05e2\u05d5\u05d3\u05d4 \u05d4\u05de\u05d6\u05d4\u05d4 \u05e9\u05dc\u05da \u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05d9\u05d5\u05ea \u05ea\u05e2\u05d5\u05d3\u05d4 \u05de\u05de\u05e9\u05dc\u05ea\u05d9\u05ea \u05e2\u05dd \u05ea\u05de\u05d5\u05e0\u05d4 \u05e9\u05de\u05e6\u05d9\u05d2\u05d4 \u05d1\u05d1\u05d9\u05e8\u05d5\u05e8 \u05d0\u05ea \u05e4\u05e0\u05d9\u05da.",
|
||||
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": "\u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05d1\u05d5 \u05d0\u05ea\u05d4 \u05de\u05e9\u05ea\u05de\u05e9 \u05dc\u05d0 \u05ea\u05d5\u05de\u05da \u05d1\u05d2\u05d9\u05e9\u05d4 \u05d9\u05e9\u05d9\u05e8\u05d4 \u05dc\u05dc\u05d5\u05d7 \u05d4\u05d4\u05d3\u05d1\u05e7\u05d4. \u05d0\u05e0\u05d0 \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05e7\u05d9\u05e6\u05d5\u05e8\u05d9 \u05d4\u05de\u05e7\u05dc\u05d3\u05ea Ctrl+X/C/V \u05d1\u05de\u05e7\u05d5\u05dd. ",
|
||||
"Your changes have been saved.": "\u05d4\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e0\u05e9\u05de\u05e8\u05d5",
|
||||
"Your changes will not take effect until you save your progress.": "\u05d4\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e9\u05d1\u05d9\u05e6\u05e2\u05ea \u05dc\u05d0 \u05d9\u05db\u05e0\u05e1\u05d5 \u05dc\u05e4\u05d5\u05e2\u05dc \u05e2\u05d3 \u05e9\u05ea\u05e9\u05de\u05d5\u05e8 \u05d0\u05ea \u05e2\u05d1\u05d5\u05d3\u05ea\u05da.",
|
||||
"Your changes will not take effect until you save your progress. Take care with key and value formatting, as validation is not implemented.": "\u05d4\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05e9\u05d1\u05d9\u05e6\u05e2\u05ea \u05dc\u05d0 \u05d9\u05db\u05e0\u05e1\u05d5 \u05dc\u05ea\u05d5\u05e7\u05e3 \u05e2\u05d3 \u05e9\u05ea\u05e9\u05de\u05d5\u05e8 \u05d0\u05ea \u05d4\u05d4\u05ea\u05e7\u05d3\u05de\u05d5\u05ea\u05da. \u05e9\u05d9\u05dd \u05dc\u05d1 \u05dc\u05e2\u05d9\u05e6\u05d5\u05d1 \u05d4\u05e7\u05d5 \u05d5\u05d4\u05e2\u05e8\u05da, \u05de\u05d0\u05d7\u05e8 \u05e9\u05d4\u05d0\u05d9\u05de\u05d5\u05ea \u05d0\u05d9\u05e0\u05d5 \u05de\u05d5\u05d8\u05de\u05e2.",
|
||||
"Your course could not be exported to XML. There is not enough information to identify the failed component. Inspect your course to identify any problematic components and try again.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d9\u05d9\u05e6\u05d0 \u05d0\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1 \u05dc-XML. \u05d0\u05d9\u05df \u05de\u05d9\u05d3\u05e2 \u05d1\u05de\u05d9\u05d3\u05d4 \u05de\u05e1\u05e4\u05e7\u05ea \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05d6\u05d4\u05d5\u05ea \u05d0\u05ea \u05d4\u05e8\u05db\u05d9\u05d1 \u05d4\u05db\u05d5\u05e9\u05dc. \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05d4\u05e7\u05d5\u05e8\u05e1 \u05e9\u05dc\u05da \u05e2\u05dc \u05de\u05e0\u05ea \u05dc\u05d6\u05d4\u05d5\u05ea \u05e8\u05db\u05d9\u05d1\u05d9\u05dd \u05d1\u05e2\u05d9\u05d9\u05ea\u05d9\u05dd \u05d5\u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1. ",
|
||||
"Your donation could not be submitted.": "\u05d4\u05ea\u05e8\u05d5\u05de\u05d4 \u05e9\u05dc\u05da \u05dc\u05d0 \u05d9\u05db\u05dc\u05d4 \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05d5\u05d2\u05e9\u05ea.",
|
||||
"Your entire face fits inside the frame.": "\u05db\u05dc \u05d4\u05e4\u05e0\u05d9\u05dd \u05e0\u05db\u05e0\u05e1\u05d9\u05dd \u05dc\u05de\u05e1\u05d2\u05e8\u05ea.",
|
||||
"Your face is well-lit.": "\u05e4\u05e0\u05d9\u05da \u05de\u05d5\u05d0\u05e8\u05d5\u05ea \u05d4\u05d9\u05d8\u05d1.",
|
||||
"Your file '{file}' has been uploaded. Allow a few minutes for processing.": "\u05d4\u05e7\u05d5\u05d1\u05e5 \u05e9\u05dc\u05da '{file}' \u05d4\u05d5\u05e2\u05dc\u05d4. \u05d0\u05e4\u05e9\u05e8 \u05dc\u05de\u05e2\u05e8\u05db\u05ea \u05db\u05de\u05d4 \u05d3\u05e7\u05d5\u05ea \u05dc\u05e2\u05d9\u05d1\u05d5\u05d3. ",
|
||||
"Your file could not be uploaded": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e2\u05dc\u05d5\u05ea \u05d0\u05ea \u05d4\u05e7\u05d5\u05d1\u05e5 \u05e9\u05dc\u05da",
|
||||
"Your file has been deleted.": "\u05d4\u05e7\u05d5\u05d1\u05e5 \u05e9\u05dc\u05da \u05e0\u05de\u05d7\u05e7",
|
||||
"Your import has failed.": "\u05d4\u05d9\u05d1\u05d5\u05d0 \u05e0\u05db\u05e9\u05dc.",
|
||||
"Your import is in progress; navigating away will abort it.": "\u05d4\u05d9\u05d1\u05d5\u05d0 \u05e9\u05dc\u05da \u05e0\u05de\u05e6\u05d0 \u05d1\u05ea\u05d4\u05dc\u05d9\u05da; \u05e0\u05d9\u05d5\u05d5\u05d8 \u05d4\u05d7\u05d5\u05e6\u05d4 \u05d9\u05d1\u05d8\u05dc \u05d6\u05d0\u05ea.",
|
||||
"Your library could not be exported to XML. There is not enough information to identify the failed component. Inspect your library to identify any problematic components and try again.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d9\u05d9\u05e6\u05d0 \u05d0\u05ea \u05e1\u05e4\u05e8\u05d9\u05d9\u05ea\u05da \u05dc\u05e7\u05d5\u05d1\u05e5 XML. \u05d0\u05d9\u05df \u05de\u05d9\u05d3\u05e2 \u05d1\u05de\u05d9\u05d3\u05d4 \u05de\u05e1\u05e4\u05e7\u05ea \u05dc\u05d6\u05d9\u05d4\u05d5\u05d9 \u05d4\u05e8\u05db\u05d9\u05d1 \u05d4\u05db\u05d5\u05e9\u05dc. \u05d1\u05d3\u05d5\u05e7 \u05d0\u05ea \u05e1\u05e4\u05e8\u05d9\u05d9\u05ea\u05da, \u05d6\u05d4\u05d4 \u05e8\u05db\u05d9\u05d1\u05d9\u05dd \u05d1\u05e2\u05d9\u05ea\u05d9\u05d9\u05dd \u05d5\u05dc\u05d0\u05d7\u05e8 \u05de\u05db\u05df \u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1. ",
|
||||
"Your message cannot be blank.": "\u05d4\u05d4\u05d5\u05d3\u05e2\u05d4 \u05e9\u05dc\u05da \u05dc\u05d0 \u05d9\u05db\u05d5\u05dc\u05d4 \u05dc\u05d4\u05d9\u05d5\u05ea \u05e8\u05d9\u05e7\u05d4.",
|
||||
"Your message must have a subject.": "\u05d4\u05d4\u05d5\u05d3\u05e2\u05d4 \u05e9\u05dc\u05da \u05d7\u05d9\u05d9\u05d1\u05ea \u05dc\u05d4\u05db\u05d9\u05dc \u05e0\u05d5\u05e9\u05d0.",
|
||||
"Your policy changes have been saved.": "\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9 \u05de\u05d3\u05d9\u05e0\u05d9\u05d5\u05ea\u05da \u05e0\u05e9\u05de\u05e8\u05d5.",
|
||||
"Your post will be discarded.": "\u05d4\u05e4\u05d5\u05e1\u05d8 \u05e9\u05dc\u05da \u05d9\u05d1\u05d5\u05d8\u05dc.",
|
||||
"Your request could not be completed. Reload the page and try again.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e9\u05dc\u05d9\u05dd \u05d0\u05ea \u05d1\u05e7\u05e9\u05ea\u05da. \u05d8\u05e2\u05df \u05de\u05d7\u05d3\u05e9 \u05d0\u05ea \u05d4\u05d3\u05e3 \u05d5\u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1.",
|
||||
"Your request could not be completed. Reload the page and try again. If the issue persists, click the Help tab to report the problem.": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e9\u05dc\u05d9\u05dd \u05d0\u05ea \u05d1\u05e7\u05e9\u05ea\u05da. \u05d8\u05e2\u05df \u05de\u05d7\u05d3\u05e9 \u05d0\u05ea \u05d4\u05d3\u05e3 \u05d5\u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1. \u05d0\u05dd \u05d4\u05d1\u05e2\u05d9\u05d4 \u05de\u05de\u05e9\u05d9\u05db\u05d4, \u05dc\u05d7\u05e5 \u05e2\u05dc \u05d4\u05dc\u05e9\u05d5\u05e0\u05d9\u05ea '\u05e2\u05d6\u05e8\u05d4' \u05db\u05d3\u05d9 \u05dc\u05d3\u05d5\u05d5\u05d7 \u05e2\u05dc \u05d4\u05d1\u05e2\u05d9\u05d4.",
|
||||
@@ -1495,6 +1700,7 @@
|
||||
"Your upload of '{file}' failed.": "\u05d4\u05e2\u05dc\u05ea \u05e7\u05d5\u05d1\u05e5 '{file}' \u05e0\u05db\u05e9\u05dc\u05d4.",
|
||||
"Your upload of '{file}' succeeded.": "\u05d4\u05e2\u05dc\u05ea \u05e7\u05d5\u05d1\u05e5 '{file}' \u05d4\u05e6\u05dc\u05d9\u05d7\u05d4.",
|
||||
"Your verification status is good until {verificationGoodUntil}.": "\u05e1\u05d8\u05d8\u05d5\u05e1 \u05d4\u05d0\u05d9\u05de\u05d5\u05ea \u05e9\u05dc\u05da \u05d8\u05d5\u05d1 \u05e2\u05d3 {verificationGoodUntil}.",
|
||||
"Your video uploads are not complete.": "\u05d4\u05e2\u05dc\u05d0\u05d5\u05ea \u05e1\u05e8\u05d8\u05d5\u05e0\u05d9 \u05d4\u05d5\u05d5\u05d9\u05d3\u05d0\u05d5 \u05dc\u05d0 \u05d4\u05d5\u05e9\u05dc\u05de\u05d5.",
|
||||
"Zoom In": "\u05d4\u05ea\u05e7\u05e8\u05d1",
|
||||
"Zoom Out": "\u05d4\u05ea\u05e8\u05d7\u05e7",
|
||||
"[no tags]": "[no tags]",
|
||||
@@ -1511,10 +1717,14 @@
|
||||
"anonymous": "\u05d0\u05e0\u05d5\u05e0\u05d9\u05de\u05d9",
|
||||
"answer": "\u05ea\u05e9\u05d5\u05d1\u05d4",
|
||||
"answered question": "\u05e9\u05d0\u05dc\u05d4 \u05e9\u05e0\u05e2\u05e0\u05ea\u05d4",
|
||||
"asset_path is required": "asset_path \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
|
||||
"bytes": "bytes",
|
||||
"certificate": "\u05ea\u05e2\u05d5\u05d3\u05d4",
|
||||
"certificate.credential_url": "certificate.credential_url",
|
||||
"certificate.display_name": "certificate.display_name",
|
||||
"close": "\u05e1\u05d2\u05d5\u05e8",
|
||||
"confirm": "\u05d0\u05e9\u05e8",
|
||||
"content group": "\u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df",
|
||||
"correct": "\u05e0\u05db\u05d5\u05df",
|
||||
"country": "\u05d0\u05e8\u05e5",
|
||||
"course id": "\u05de\u05d6\u05d4\u05d4 \u05e7\u05d5\u05e8\u05e1",
|
||||
@@ -1540,6 +1750,7 @@
|
||||
"follow this post": "\u05e2\u05e7\u05d5\u05d1 \u05d0\u05d7\u05e8 \u05e4\u05d5\u05e1\u05d8 \u05d6\u05d4",
|
||||
"formLabel": "\u05ea\u05d5\u05d5\u05d9\u05ea \u05d8\u05d5\u05e4\u05e1",
|
||||
"gettext(": "gettext(",
|
||||
"group configuration": "\u05d4\u05d2\u05d3\u05e8\u05ea \u05e7\u05d1\u05d5\u05e6\u05d4",
|
||||
"incorrect": "\u05dc\u05d0 \u05e0\u05db\u05d5\u05df",
|
||||
"language": "\u05e9\u05e4\u05d4",
|
||||
"last activity": "\u05e4\u05e2\u05d9\u05dc\u05d5\u05ea \u05d0\u05d7\u05e8\u05d5\u05e0\u05d4",
|
||||
@@ -1562,10 +1773,12 @@
|
||||
"provide the title/name of the text book as you would like your students to see it": "\u05e1\u05e4\u05e7 \u05d0\u05ea \u05d4\u05db\u05d5\u05ea\u05e8\u05ea \u05d0\u05d5 \u05e9\u05dd \u05e9\u05dc \u05e1\u05e4\u05e8 \u05d4\u05e7\u05d5\u05e8\u05e1 \u05e9\u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05e6\u05e8\u05d9\u05db\u05d9\u05dd \u05dc\u05e8\u05d0\u05d5\u05ea",
|
||||
"remove": "\u05d4\u05e1\u05e8",
|
||||
"remove all": "\u05d4\u05e1\u05e8 \u05d4\u05db\u05dc",
|
||||
"section": "\u05e4\u05e8\u05e7",
|
||||
"section.title": "section.title",
|
||||
"send an email message to {email}": "\u05e9\u05dc\u05d7 \u05d4\u05d5\u05d3\u05e2\u05ea \u05d3\u05d5\u05d0\"\u05dc \u05dc{email}",
|
||||
"status": "\u05d3\u05d5\u05d7 \u05de\u05e6\u05d1",
|
||||
"strong text": "\u05d8\u05e7\u05e1\u05d8 \u05d7\u05d6\u05e7",
|
||||
"subsection": "\u05ea\u05ea \u05de\u05e7\u05d8\u05e2",
|
||||
"team count": "\u05e1\u05e4\u05d9\u05e8\u05ea \u05e6\u05d5\u05d5\u05ea",
|
||||
"there is currently %(numVotes)s vote": [
|
||||
"\u05db\u05e8\u05d2\u05e2 \u05d9\u05e9 \u05d4\u05e6\u05d1\u05e2\u05d4 %(numVotes)s",
|
||||
@@ -1573,13 +1786,32 @@
|
||||
],
|
||||
"timed": "\u05de\u05ea\u05d5\u05d6\u05de\u05df",
|
||||
"title": "\u05db\u05d5\u05ea\u05e8\u05ea",
|
||||
"type": "\u05e1\u05d5\u05d2",
|
||||
"unanswered question": "\u05e9\u05d0\u05dc\u05d4 \u05e9\u05dc\u05d0 \u05e0\u05e2\u05e0\u05ea\u05d4",
|
||||
"unit": "\u05d9\u05d7\u05d9\u05d3\u05d4",
|
||||
"upload a PDF file or provide the path to a Studio asset file": "\u05d4\u05e2\u05dc\u05d4 PDF \u05d0\u05d5 \u05e1\u05e4\u05e7 \u05d0\u05ea \u05d4\u05d3\u05e8\u05da \u05dc\u05e7\u05d5\u05d1\u05e5 \u05e0\u05db\u05e1 \u05e9\u05dc \u05e1\u05d8\u05d5\u05d3\u05d9\u05d5",
|
||||
"username or email": "\u05e9\u05dd \u05de\u05e9\u05ea\u05de\u05e9 \u05d0\u05d5 \u05db\u05ea\u05d5\u05d1\u05ea \u05d3\u05d5\u05d0\u05e8 \u05d0\u05dc\u05e7\u05d8\u05e8\u05d5\u05e0\u05d9",
|
||||
"with %(release_date_from)s": "\u05e2\u05dd %(release_date_from)s",
|
||||
"with %(section_or_subsection)s": "\u05e2\u05dd %(section_or_subsection)s",
|
||||
"{0} is invalid": "{0} \u05d0\u05d9\u05e0\u05d5 \u05d7\u05d5\u05e7\u05d9",
|
||||
"{0} is required": "{0} \u05d4\u05d5\u05d0 \u05e9\u05d3\u05d4 \u05d7\u05d5\u05d1\u05d4",
|
||||
"{0} must be a number": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05de\u05e1\u05e4\u05e8",
|
||||
"{0} must be a valid email": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d3\u05d5\u05d0\"\u05dc \u05d7\u05d5\u05e7\u05d9",
|
||||
"{0} must be a valid url": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea url \u05d7\u05d5\u05e7\u05d9",
|
||||
"{0} must be accepted": "\u05d7\u05d5\u05d1\u05d4 \u05dc\u05e7\u05d1\u05dc {0} ",
|
||||
"{0} must be at least {1} characters": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05e2\u05dc {1} \u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9\u05dd \u05dc\u05db\u05dc \u05d4\u05e4\u05d7\u05d5\u05ea",
|
||||
"{0} must be at most {1} characters": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05e2\u05dc {1} \u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9\u05dd \u05dc\u05db\u05dc \u05d4\u05d9\u05d5\u05ea\u05e8",
|
||||
"{0} must be between {1} and {2}": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05d9\u05df {1} \u05dc-{2}",
|
||||
"{0} must be between {1} and {2} characters": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05d9\u05df \u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9\u05dd {1} \u05d5-{2} ",
|
||||
"{0} must be greater than or equal to {1}": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d2\u05d3\u05d5\u05dc \u05d9\u05d5\u05ea\u05e8 \u05d0\u05d5 \u05e9\u05d5\u05d5\u05d4 \u05dc-{1}",
|
||||
"{0} must be less than or equal to {1}": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05e7\u05d8\u05df \u05d0\u05d5 \u05e9\u05d5\u05d5\u05d4 \u05de- {1}",
|
||||
"{0} must be one of: {1}": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d0\u05d7\u05d3 \u05de: {1}",
|
||||
"{0} must be the same as {1}": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d6\u05d4\u05d4 \u05dc-{1}",
|
||||
"{0} must be {1} characters": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d1\u05e2\u05dc {1} \u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9\u05dd",
|
||||
"{0} must only contain digits": "{0} \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05db\u05d9\u05dc \u05e8\u05e7 \u05e1\u05e4\u05e8\u05d5\u05ea",
|
||||
"{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}.": "{browse_span_start}\u05e2\u05d9\u05d9\u05df \u05d1\u05e6\u05d5\u05d5\u05ea\u05d9\u05dd \u05d1\u05e0\u05d5\u05e9\u05d0\u05d9\u05dd \u05d0\u05d7\u05e8\u05d9\u05dd {span_end}\u05d0\u05d5 {search_span_start}\u05d7\u05e4\u05e9 \u05e6\u05d5\u05d5\u05ea\u05d9\u05dd{span_end} \u05d1\u05e0\u05d5\u05e9\u05d0 \u05d6\u05d4. \u05d0\u05dd \u05e2\u05d3\u05d9\u05d9\u05df \u05dc\u05d0 \u05d4\u05e6\u05dc\u05d7\u05ea \u05dc\u05de\u05e6\u05d5\u05d0 \u05e6\u05d5\u05d5\u05ea \u05dc\u05d4\u05e6\u05d8\u05e8\u05e3 \u05d0\u05dc\u05d9\u05d5, {create_span_start}\u05e6\u05d5\u05e8 \u05e6\u05d5\u05d5\u05ea \u05d7\u05d3\u05e9 \u05d1\u05e0\u05d5\u05e9\u05d0 \u05d6\u05d4{span_end}.",
|
||||
"{display_name} Settings": "\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea {display_name}",
|
||||
"{email} is already on the {container} team. Recheck the email address if you want to add a new member.": "{email} \u05db\u05d1\u05e8 \u05e0\u05de\u05e6\u05d0 \u05d1\u05e6\u05d5\u05d5\u05ea {container}. \u05d1\u05d3\u05d5\u05e7 \u05de\u05d7\u05d3\u05e9 \u05d0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\"\u05dc \u05d1\u05de\u05d9\u05d3\u05d4 \u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05d7\u05d1\u05e8 \u05e6\u05d5\u05d5\u05ea \u05d7\u05d3\u05e9.",
|
||||
"{hours}:{minutes} (current UTC time)": "{hours}:{minutes} (\u05d6\u05de\u05df \u05d0\u05d5\u05e0\u05d9\u05d1\u05e8\u05e1\u05dc\u05d9 \u05de\u05ea\u05d5\u05d0\u05dd (UTC) \u05e0\u05d5\u05db\u05d7\u05d9)",
|
||||
"{numMoved} student was removed from {oldCohort}": [
|
||||
"{numMoved} \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8 \u05d4\u05d5\u05e1\u05e8 \u05de {oldCohort}",
|
||||
"{numMoved} \u05d4\u05e1\u05d8\u05d5\u05d3\u05e0\u05d8\u05d9\u05dd \u05d4\u05d5\u05e1\u05e8\u05d5 \u05de {oldCohort}"
|
||||
@@ -1595,6 +1827,7 @@
|
||||
"{platform_name} learners can see my:": "{platform_name} \u05d9\u05db\u05d5\u05dc\u05d9\u05dd \u05dc\u05e8\u05d0\u05d5\u05ea \u05d0\u05ea:",
|
||||
"{screen_reader_start}Warning:{screen_reader_end} No content groups exist.": "{screen_reader_start}\u05d0\u05d6\u05d4\u05e8\u05d4:{screen_reader_end} \u05dc\u05d0 \u05e7\u05d9\u05d9\u05de\u05d5\u05ea \u05e7\u05d1\u05d5\u05e6\u05d5\u05ea \u05ea\u05d5\u05db\u05df.",
|
||||
"{screen_reader_start}Warning:{screen_reader_end} The previously selected content group was deleted. Select another content group.": "{screen_reader_start}\u05d0\u05d6\u05d4\u05e8\u05d4:{screen_reader_end} \u05e7\u05d1\u05d5\u05e6\u05ea \u05d4\u05ea\u05d5\u05db\u05df \u05e9\u05e0\u05d1\u05d7\u05e8\u05d4 \u05d1\u05e2\u05d1\u05e8 \u05e0\u05de\u05d7\u05e7\u05d4. \u05d1\u05d7\u05e8 \u05e7\u05d1\u05d5\u05e6\u05ea \u05ea\u05d5\u05db\u05df \u05d0\u05d7\u05e8\u05ea.",
|
||||
"{totalItems} total": "{totalItems} \u05e1\u05da \u05d4\u05db\u05dc",
|
||||
"\u2026": "..."
|
||||
};
|
||||
|
||||
|
||||
@@ -635,7 +635,6 @@
|
||||
"General": "Geral",
|
||||
"Generate": "Emitir",
|
||||
"Generate Exception Certificates": "Gerar certificados de exce\u00e7\u00e3o",
|
||||
"Generate a Certificate for all users on the Exception list": "Gerar um certificado para todos os usu\u00e1rios na lista de exce\u00e7\u00f5es",
|
||||
"Generate the user's certificate": "Emitir certificado do usu\u00e1rio",
|
||||
"Get Credit": "Obter Cr\u00e9dito",
|
||||
"Go to Dashboard": "Ir para a P\u00e1gina Inicial",
|
||||
@@ -1485,7 +1484,6 @@
|
||||
"We weren't able to send you a password reset email.": "N\u00e3o foi poss\u00edvel enviar um e-mail para redefini\u00e7\u00e3o de sua senha.",
|
||||
"We're sorry, there was an error": "Ocorreu um erro",
|
||||
"We've encountered an error. Refresh your browser and then try again.": "Encontramos um erro. Atualize seu navegador e tente novamente.",
|
||||
"We've sent instructions for resetting your password to the email address you provided.": "Enviamos instru\u00e7\u00f5es para reiniciar sua senha para o e-mail fornecido.",
|
||||
"Web:": "Web:",
|
||||
"Webcam": "Webcam",
|
||||
"Weight of Total Grade": "Peso da nota total",
|
||||
|
||||
@@ -205,6 +205,7 @@
|
||||
"Alignment": "\u0634\u0645\u0647\u0644\u0631\u0648\u062b\u0631\u0641",
|
||||
"All Groups": "\u0634\u0645\u0645 \u0644\u0642\u062e\u0639\u062d\u0633",
|
||||
"All Rights Reserved": "\u0634\u0645\u0645 \u0642\u0647\u0644\u0627\u0641\u0633 \u0642\u062b\u0633\u062b\u0642\u062f\u062b\u064a",
|
||||
"All Time Zones": "\u0634\u0645\u0645 \u0641\u0647\u0648\u062b \u0638\u062e\u0631\u062b\u0633",
|
||||
"All Topics": "\u0634\u0645\u0645 \u0641\u062e\u062d\u0647\u0630\u0633",
|
||||
"All accounts were created successfully.": "\u0634\u0645\u0645 \u0634\u0630\u0630\u062e\u0639\u0631\u0641\u0633 \u0635\u062b\u0642\u062b \u0630\u0642\u062b\u0634\u0641\u062b\u064a \u0633\u0639\u0630\u0630\u062b\u0633\u0633\u0628\u0639\u0645\u0645\u063a.",
|
||||
"All chapters must have a name and asset": "\u0634\u0645\u0645 \u0630\u0627\u0634\u062d\u0641\u062b\u0642\u0633 \u0648\u0639\u0633\u0641 \u0627\u0634\u062f\u062b \u0634 \u0631\u0634\u0648\u062b \u0634\u0631\u064a \u0634\u0633\u0633\u062b\u0641",
|
||||
@@ -832,6 +833,7 @@
|
||||
"Instructor Photo URL": "\u0647\u0631\u0633\u0641\u0642\u0639\u0630\u0641\u062e\u0642 \u062d\u0627\u062e\u0641\u062e \u0639\u0642\u0645",
|
||||
"Instructor Title": "\u0647\u0631\u0633\u0641\u0642\u0639\u0630\u0641\u062e\u0642 \u0641\u0647\u0641\u0645\u062b",
|
||||
"Instructor tools": "\u0647\u0631\u0633\u0641\u0642\u0639\u0630\u0641\u062e\u0642 \u0641\u062e\u062e\u0645\u0633",
|
||||
"Internal Server Error.": "\u0647\u0631\u0641\u062b\u0642\u0631\u0634\u0645 \u0633\u062b\u0642\u062f\u062b\u0642 \u062b\u0642\u0642\u062e\u0642.",
|
||||
"Introduction to Cookie Baking": "\u0647\u0631\u0641\u0642\u062e\u064a\u0639\u0630\u0641\u0647\u062e\u0631 \u0641\u062e \u0630\u062e\u062e\u0646\u0647\u062b \u0632\u0634\u0646\u0647\u0631\u0644",
|
||||
"Invalidate Certificate": "\u0647\u0631\u062f\u0634\u0645\u0647\u064a\u0634\u0641\u062b \u0630\u062b\u0642\u0641\u0647\u0628\u0647\u0630\u0634\u0641\u062b",
|
||||
"Invalidated": "\u0647\u0631\u062f\u0634\u0645\u0647\u064a\u0634\u0641\u062b\u064a",
|
||||
@@ -1461,6 +1463,7 @@
|
||||
"The page \"{route}\" could not be found.": "\u0641\u0627\u062b \u062d\u0634\u0644\u062b \"{route}\" \u0630\u062e\u0639\u0645\u064a \u0631\u062e\u0641 \u0632\u062b \u0628\u062e\u0639\u0631\u064a.",
|
||||
"The photo of your face matches the photo on your ID.": "\u0641\u0627\u062b \u062d\u0627\u062e\u0641\u062e \u062e\u0628 \u063a\u062e\u0639\u0642 \u0628\u0634\u0630\u062b \u0648\u0634\u0641\u0630\u0627\u062b\u0633 \u0641\u0627\u062b \u062d\u0627\u062e\u0641\u062e \u062e\u0631 \u063a\u062e\u0639\u0642 \u0647\u064a.",
|
||||
"The public display name of the program.": "\u0641\u0627\u062b \u062d\u0639\u0632\u0645\u0647\u0630 \u064a\u0647\u0633\u062d\u0645\u0634\u063a \u0631\u0634\u0648\u062b \u062e\u0628 \u0641\u0627\u062b \u062d\u0642\u062e\u0644\u0642\u0634\u0648.",
|
||||
"The published branch version, {published}, was reset to the draft branch version, {draft}.": "\u0641\u0627\u062b \u062d\u0639\u0632\u0645\u0647\u0633\u0627\u062b\u064a \u0632\u0642\u0634\u0631\u0630\u0627 \u062f\u062b\u0642\u0633\u0647\u062e\u0631, {published}, \u0635\u0634\u0633 \u0642\u062b\u0633\u062b\u0641 \u0641\u062e \u0641\u0627\u062b \u064a\u0642\u0634\u0628\u0641 \u0632\u0642\u0634\u0631\u0630\u0627 \u062f\u062b\u0642\u0633\u0647\u062e\u0631, {draft}.",
|
||||
"The raw error message is:": "\u0641\u0627\u062b \u0642\u0634\u0635 \u062b\u0642\u0642\u062e\u0642 \u0648\u062b\u0633\u0633\u0634\u0644\u062b \u0647\u0633:",
|
||||
"The selected content group does not exist": "\u0641\u0627\u062b \u0633\u062b\u0645\u062b\u0630\u0641\u062b\u064a \u0630\u062e\u0631\u0641\u062b\u0631\u0641 \u0644\u0642\u062e\u0639\u062d \u064a\u062e\u062b\u0633 \u0631\u062e\u0641 \u062b\u0637\u0647\u0633\u0641",
|
||||
"The team \"{team}\" could not be found.": "\u0641\u0627\u062b \u0641\u062b\u0634\u0648 \"{team}\" \u0630\u062e\u0639\u0645\u064a \u0631\u062e\u0641 \u0632\u062b \u0628\u062e\u0639\u0631\u064a.",
|
||||
@@ -1804,6 +1807,7 @@
|
||||
"You have already reported this annotation.": "\u063a\u062e\u0639 \u0627\u0634\u062f\u062b \u0634\u0645\u0642\u062b\u0634\u064a\u063a \u0642\u062b\u062d\u062e\u0642\u0641\u062b\u064a \u0641\u0627\u0647\u0633 \u0634\u0631\u0631\u062e\u0641\u0634\u0641\u0647\u062e\u0631.",
|
||||
"You have already verified your ID!": "\u063a\u062e\u0639 \u0627\u0634\u062f\u062b \u0634\u0645\u0642\u062b\u0634\u064a\u063a \u062f\u062b\u0642\u0647\u0628\u0647\u062b\u064a \u063a\u062e\u0639\u0642 \u0647\u064a!",
|
||||
"You have been logged out of your edX account. ": "\u063a\u062e\u0639 \u0627\u0634\u062f\u062b \u0632\u062b\u062b\u0631 \u0645\u062e\u0644\u0644\u062b\u064a \u062e\u0639\u0641 \u062e\u0628 \u063a\u062e\u0639\u0642 \u062b\u064a\u0637 \u0634\u0630\u0630\u062e\u0639\u0631\u0641. ",
|
||||
"You have done a dry run of force publishing the course. Nothing has changed. Had you run it, the following course versions would have been change.": "\u063a\u062e\u0639 \u0627\u0634\u062f\u062b \u064a\u062e\u0631\u062b \u0634 \u064a\u0642\u063a \u0642\u0639\u0631 \u062e\u0628 \u0628\u062e\u0642\u0630\u062b \u062d\u0639\u0632\u0645\u0647\u0633\u0627\u0647\u0631\u0644 \u0641\u0627\u062b \u0630\u062e\u0639\u0642\u0633\u062b. \u0631\u062e\u0641\u0627\u0647\u0631\u0644 \u0627\u0634\u0633 \u0630\u0627\u0634\u0631\u0644\u062b\u064a. \u0627\u0634\u064a \u063a\u062e\u0639 \u0642\u0639\u0631 \u0647\u0641, \u0641\u0627\u062b \u0628\u062e\u0645\u0645\u062e\u0635\u0647\u0631\u0644 \u0630\u062e\u0639\u0642\u0633\u062b \u062f\u062b\u0642\u0633\u0647\u062e\u0631\u0633 \u0635\u062e\u0639\u0645\u064a \u0627\u0634\u062f\u062b \u0632\u062b\u062b\u0631 \u0630\u0627\u0634\u0631\u0644\u062b.",
|
||||
"You have earned certificates in %(completed_courses)s of the %(total_courses)s courses so far.": "\u063a\u062e\u0639 \u0627\u0634\u062f\u062b \u062b\u0634\u0642\u0631\u062b\u064a \u0630\u062b\u0642\u0641\u0647\u0628\u0647\u0630\u0634\u0641\u062b\u0633 \u0647\u0631 %(completed_courses)s \u062e\u0628 \u0641\u0627\u062b %(total_courses)s \u0630\u062e\u0639\u0642\u0633\u062b\u0633 \u0633\u062e \u0628\u0634\u0642.",
|
||||
"You have no handouts defined": "\u063a\u062e\u0639 \u0627\u0634\u062f\u062b \u0631\u062e \u0627\u0634\u0631\u064a\u062e\u0639\u0641\u0633 \u064a\u062b\u0628\u0647\u0631\u062b\u064a",
|
||||
"You have not bookmarked any courseware pages yet.": "\u063a\u062e\u0639 \u0627\u0634\u062f\u062b \u0631\u062e\u0641 \u0632\u062e\u062e\u0646\u0648\u0634\u0642\u0646\u062b\u064a \u0634\u0631\u063a \u0630\u062e\u0639\u0642\u0633\u062b\u0635\u0634\u0642\u062b \u062d\u0634\u0644\u062b\u0633 \u063a\u062b\u0641.",
|
||||
|
||||
@@ -737,7 +737,6 @@
|
||||
"General": "\u041e\u0431\u0449\u0435\u0435",
|
||||
"Generate": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c",
|
||||
"Generate Exception Certificates": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432",
|
||||
"Generate a Certificate for all users on the Exception list": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439",
|
||||
"Generate the user's certificate": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442",
|
||||
"Get Credit": "\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u0430\u0447\u0451\u0442",
|
||||
"Go to Dashboard": "\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043f\u0430\u043d\u0435\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f",
|
||||
@@ -1719,7 +1718,6 @@
|
||||
"We've encountered an error. Refresh your browser and then try again.": "\u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430. \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.",
|
||||
"We've sent a confirmation message to {new_email_address}. Click the link in the message to update your email address.": "\u041c\u044b \u0432\u044b\u0441\u043b\u0430\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 {new_email_address}. \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432 \u043f\u0438\u0441\u044c\u043c\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0430\u0448 \u0430\u0434\u0440\u0435\u0441 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b.",
|
||||
"We've sent a message to {email_address}. Click the link in the message to reset your password.": "\u041c\u044b \u0432\u044b\u0441\u043b\u0430\u043b\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043d\u0430 {email_address}. \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432 \u043f\u0438\u0441\u044c\u043c\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c.",
|
||||
"We've sent instructions for resetting your password to the email address you provided.": "\u041c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043f\u0430\u0440\u043e\u043b\u044f \u043d\u0430 \u0432\u0430\u0448 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441.",
|
||||
"Web:": "\u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442:",
|
||||
"Webcam": "\u0412\u0435\u0431-\u043a\u0430\u043c\u0435\u0440\u0430",
|
||||
"Weight of Total Grade": "\u0412\u0435\u0441 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u043e\u0446\u0435\u043d\u043a\u0438",
|
||||
@@ -1734,7 +1732,6 @@
|
||||
"Will Be Visible To:": "\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d:",
|
||||
"Words: {0}": "\u0421\u043b\u043e\u0432\u0430: {0}",
|
||||
"Would you like to sign in using your %(providerName)s credentials?": "\u0412\u043e\u0439\u0442\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043b\u043e\u0433\u0438\u043d\u0430 \u0438 \u043f\u0430\u0440\u043e\u043b\u044f %(providerName)s?",
|
||||
"XSeries Program Certificates": "\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c XSeries",
|
||||
"Year of Birth": "\u0413\u043e\u0434 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f",
|
||||
"Yes, allow edits to the active Certificate": "\u0414\u0430, \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430",
|
||||
"Yes, delete this %(xblock_type)s": "\u0414\u0430, \u0443\u0434\u0430\u043b\u0438\u0442\u044c %(xblock_type)s",
|
||||
@@ -1917,7 +1914,6 @@
|
||||
],
|
||||
"timed": "\u043f\u0440\u0438\u0443\u0440\u043e\u0447\u0435\u043d",
|
||||
"title": "\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
|
||||
"type": "\u0442\u0438\u043f",
|
||||
"unanswered question": "\u0432\u043e\u043f\u0440\u043e\u0441 \u0431\u0435\u0437 \u043e\u0442\u0432\u0435\u0442\u0430",
|
||||
"unit": "\u0431\u043b\u043e\u043a",
|
||||
"upload a PDF file or provide the path to a Studio asset file": "\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 PDF-\u0444\u0430\u0439\u043b \u0438\u043b\u0438 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0443\u0442\u044c \u043a \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u0447\u0435\u0440\u0435\u0437 \u0421\u0442\u0443\u0434\u0438\u044e \u0444\u0430\u0439\u043b\u0443",
|
||||
@@ -1930,7 +1926,6 @@
|
||||
"{0} must be a valid email": "{0} \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b",
|
||||
"{0} must be a valid url": "{0} \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c url",
|
||||
"{0} must be accepted": "\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u044c {0}",
|
||||
"{0} must be the same as {1}": "{0} must be the same as {1}",
|
||||
"{0} must only contain digits": "{0} \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0438\u0444\u0440\u044b",
|
||||
"{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}.": "{browse_span_start}\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043a\u043e\u043c\u0430\u043d\u0434 \u043f\u043e \u0434\u0440\u0443\u0433\u0438\u043c \u0442\u0435\u043c\u0430\u043c{span_end} \u0438\u043b\u0438 {search_span_start} \u043f\u043e\u0438\u0441\u043a{span_end} \u043f\u043e \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f, {create_span_start}\u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043f\u043e \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435{span_end}.",
|
||||
"{display_name} Settings": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 {display_name}",
|
||||
|
||||
@@ -521,8 +521,6 @@
|
||||
"Explain if other.": "\u5982\u5176\u4ed6\u539f\u56e0\uff0c\u8bf7\u89e3\u91ca\u3002",
|
||||
"Explanation": "\u89e3\u91ca",
|
||||
"Explicitly Hiding from Students": "\u660e\u786e\u5bf9\u5b66\u751f\u9690\u85cf",
|
||||
"Explore New XSeries": "\u63a2\u7d22\u65b0\u7684 XSeries",
|
||||
"Explore XSeries Programs": "\u63a2\u7d22 XSeries \u8bfe\u7a0b",
|
||||
"Explore your course!": "\u63a2\u7d22\u4f60\u7684\u8bfe\u7a0b\uff01",
|
||||
"Failed to delete student state.": "\u5220\u9664\u5b66\u751f\u72b6\u6001\u5931\u8d25\u3002",
|
||||
"Failed to rescore problem.": "\u91cd\u8bc4\u5f97\u5206\u5931\u8d25\u3002",
|
||||
@@ -560,8 +558,6 @@
|
||||
"General": "\u4e00\u822c",
|
||||
"Generate": "\u751f\u6210",
|
||||
"Generate Exception Certificates": "\u751f\u6210\u7279\u4f8b\u8bc1\u4e66",
|
||||
"Generate a Certificate for all users on the Exception list": "\u4e3a\u7279\u6b8a\u5904\u7406\u5217\u8868\u4e2d\u7684\u6240\u6709\u7528\u6237\u751f\u6210\u8bc1\u4e66",
|
||||
"Generate certificates for all users on the Exception list who do not yet have a certificate": "\u4e3a\u7279\u6b8a\u5904\u7406\u5217\u8868\u4e2d\u5c1a\u65e0\u8bc1\u4e66\u7684\u6240\u6709\u7528\u6237\u751f\u6210\u8bc1\u4e66",
|
||||
"Generate the user's certificate": "\u751f\u6210\u7528\u6237\u8bc1\u4e66",
|
||||
"Get Credit": "\u83b7\u5f97\u5b66\u5206",
|
||||
"Go to Dashboard": "\u524d\u5f80\u8bfe\u7a0b\u9762\u677f",
|
||||
@@ -1288,7 +1284,6 @@
|
||||
"View Teams in the %(topic_name)s Topic": "\u67e5\u770b %(topic_name)s\u4e3b\u9898\u4e0b\u7684\u56e2\u961f",
|
||||
"View all errors": "\u67e5\u770b\u6240\u6709\u9519\u8bef",
|
||||
"View discussion": "\u67e5\u770b\u8ba8\u8bba",
|
||||
"View/Share Certificate": "\u67e5\u770b\uff0f\u5206\u4eab\u8bc1\u4e66",
|
||||
"Viewing %s course": [
|
||||
"\u67e5\u770b %s \u4e2a\u8bfe\u7a0b"
|
||||
],
|
||||
@@ -1334,7 +1329,6 @@
|
||||
"We've encountered an error. Refresh your browser and then try again.": "\u6211\u4eec\u9047\u5230\u4e86\u4e00\u4e2a\u9519\u8bef\u3002\u8bf7\u5237\u65b0\u60a8\u7684\u6d4f\u89c8\u5668\u5e76\u91cd\u8bd5\u3002",
|
||||
"We've sent a confirmation message to {new_email_address}. Click the link in the message to update your email address.": "\u6211\u4eec\u5df2\u4f1a\u53d1\u9001\u4e00\u4e2a\u9a8c\u8bc1\u8baf\u606f\u81f3 {new_email_address}\u3002\u70b9\u51fb\u8baf\u606f\u4e2d\u7684\u94fe\u63a5\u4ee5\u66f4\u65b0\u60a8\u7684\u7535\u5b50\u90ae\u4ef6\u4fe1\u7bb1\u3002",
|
||||
"We've sent a message to {email_address}. Click the link in the message to reset your password.": "\u6211\u4eec\u5c06\u4f1a\u53d1\u9001\u4e00\u4e2a\u8baf\u606f\u81f3 {email_address}\u3002\u70b9\u51fb\u8baf\u606f\u4e2d\u7684\u94fe\u63a5\u4ee5\u91cd\u8bbe\u5bc6\u7801\u3002",
|
||||
"We've sent instructions for resetting your password to the email address you provided.": "\u6211\u4eec\u5df2\u7ecf\u5411\u60a8\u63d0\u4f9b\u7684\u7535\u5b50\u90ae\u4ef6\u53d1\u9001\u4e86\u91cd\u7f6e\u5bc6\u7801\u7684\u8bf4\u660e\u3002",
|
||||
"Webcam": "\u6444\u50cf\u5934",
|
||||
"What You Need for Verification": "\u8ba4\u8bc1\u6240\u9700",
|
||||
"What does %(platformName)s do with this photo?": "%(platformName)s\u7528\u8fd9\u5f20\u7167\u7247\u505a\u4ec0\u4e48\uff1f",
|
||||
@@ -1347,7 +1341,6 @@
|
||||
"Width": "\u5bbd",
|
||||
"Words: {0}": "\u5b57\u6570\uff1a {0}",
|
||||
"Would you like to sign in using your %(providerName)s credentials?": "\u60a8\u662f\u5426\u60f3\u4f7f\u7528 %(providerName)s \u767b\u5f55\uff1f",
|
||||
"XSeries Program Certificates": "XSeries \u8bfe\u7a0b\u8bc1\u4e66",
|
||||
"Year of Birth": "\u51fa\u751f\u5e74\u4efd",
|
||||
"Yes, delete this %(xblock_type)s": "\u662f\u7684\uff0c\u5220\u9664\u8be5%(xblock_type)s",
|
||||
"You already belong to another team.": "\u4f60\u5df2\u7ecf\u5c5e\u4e8e\u53e6\u4e00\u4e2a\u56e2\u961f\u3002",
|
||||
@@ -1356,7 +1349,6 @@
|
||||
"You are enrolling in: {courseName}": "\u60a8\u6b63\u5728\u9009\u62e9\uff1a{courseName}",
|
||||
"You are here": "\u60a8\u5728\u8fd9\u513f",
|
||||
"You are not currently a member of any team.": "\u4f60\u76ee\u524d\u4e0d\u662f\u4efb\u4f55\u56e2\u961f\u4e2d\u7684\u4e00\u5458\u3002",
|
||||
"You are not enrolled in any XSeries Programs yet.": "\u4f60\u5c1a\u672a\u9009\u62e9\u4efb\u4f55 XSeries \u8bfe\u7a0b\u3002",
|
||||
"You are now enrolled as a verified student for:": "\u60a8\u5df2\u7ecf\u5df2\u8ba4\u8bc1\u5b66\u751f\u7684\u8eab\u4efd\u9009\u62e9\u4e86\u8bfe\u7a0b\uff1a",
|
||||
"You are upgrading your enrollment for: {courseName}": "\u60a8\u6b63\u5728\u5347\u7ea7\u60a8\u7684 {courseName} \u9009\u8bfe\u72b6\u6001",
|
||||
"You can now enter your payment information and complete your enrollment.": "\u4f60\u53ef\u4ee5\u73b0\u5728\u5c31\u8f93\u5165\u652f\u4ed8\u4fe1\u606f\u5e76\u5b8c\u6210\u9009\u8bfe\u3002",
|
||||
@@ -1494,7 +1486,6 @@
|
||||
],
|
||||
"timed": "\u5b9a\u65f6",
|
||||
"title": "\u6807\u9898",
|
||||
"type": "\u7c7b\u578b",
|
||||
"unanswered question": "\u5f85\u56de\u590d\u7684\u95ee\u9898",
|
||||
"unit": "\u5355\u5143",
|
||||
"username or email": "\u7528\u6237\u540d\u79f0/\u7535\u5b50\u90ae\u4ef6",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
define(["domReady", "jquery", "underscore", "js/utils/cancel_on_escape", "js/views/utils/create_course_utils",
|
||||
"js/views/utils/create_library_utils", "common/js/components/utils/view_utils"],
|
||||
function (domReady, $, _, CancelOnEscape, CreateCourseUtilsFactory, CreateLibraryUtilsFactory, ViewUtils) {
|
||||
"use strict";
|
||||
define(['domReady', 'jquery', 'underscore', 'js/utils/cancel_on_escape', 'js/views/utils/create_course_utils',
|
||||
'js/views/utils/create_library_utils', 'common/js/components/utils/view_utils'],
|
||||
function(domReady, $, _, CancelOnEscape, CreateCourseUtilsFactory, CreateLibraryUtilsFactory, ViewUtils) {
|
||||
'use strict';
|
||||
var CreateCourseUtils = new CreateCourseUtilsFactory({
|
||||
name: '.new-course-name',
|
||||
org: '.new-course-org',
|
||||
@@ -39,7 +39,7 @@ define(["domReady", "jquery", "underscore", "js/utils/cancel_on_escape", "js/vie
|
||||
error: 'error'
|
||||
});
|
||||
|
||||
var saveNewCourse = function (e) {
|
||||
var saveNewCourse = function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (CreateCourseUtils.hasInvalidRequiredFields()) {
|
||||
@@ -60,27 +60,27 @@ define(["domReady", "jquery", "underscore", "js/utils/cancel_on_escape", "js/vie
|
||||
};
|
||||
|
||||
analytics.track('Created a Course', course_info);
|
||||
CreateCourseUtils.create(course_info, function (errorMessage) {
|
||||
CreateCourseUtils.create(course_info, function(errorMessage) {
|
||||
$('.create-course .wrap-error').addClass('is-shown');
|
||||
$('#course_creation_error').html('<p>' + errorMessage + '</p>');
|
||||
$('.new-course-save').addClass('is-disabled').attr('aria-disabled', true);
|
||||
});
|
||||
};
|
||||
|
||||
var makeCancelHandler = function (addType) {
|
||||
var makeCancelHandler = function(addType) {
|
||||
return function(e) {
|
||||
e.preventDefault();
|
||||
$('.new-'+addType+'-button').removeClass('is-disabled').attr('aria-disabled', false);
|
||||
$('.wrapper-create-'+addType).removeClass('is-shown');
|
||||
$('.new-' + addType + '-button').removeClass('is-disabled').attr('aria-disabled', false);
|
||||
$('.wrapper-create-' + addType).removeClass('is-shown');
|
||||
// Clear out existing fields and errors
|
||||
$('#create-'+addType+'-form input[type=text]').val('');
|
||||
$('#'+addType+'_creation_error').html('');
|
||||
$('.create-'+addType+' .wrap-error').removeClass('is-shown');
|
||||
$('.new-'+addType+'-save').off('click');
|
||||
$('#create-' + addType + '-form input[type=text]').val('');
|
||||
$('#' + addType + '_creation_error').html('');
|
||||
$('.create-' + addType + ' .wrap-error').removeClass('is-shown');
|
||||
$('.new-' + addType + '-save').off('click');
|
||||
};
|
||||
};
|
||||
|
||||
var addNewCourse = function (e) {
|
||||
var addNewCourse = function(e) {
|
||||
e.preventDefault();
|
||||
$('.new-course-button').addClass('is-disabled').attr('aria-disabled', true);
|
||||
$('.new-course-save').addClass('is-disabled').attr('aria-disabled', true);
|
||||
@@ -95,7 +95,7 @@ define(["domReady", "jquery", "underscore", "js/utils/cancel_on_escape", "js/vie
|
||||
CreateCourseUtils.configureHandlers();
|
||||
};
|
||||
|
||||
var saveNewLibrary = function (e) {
|
||||
var saveNewLibrary = function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
if (CreateLibraryUtils.hasInvalidRequiredFields()) {
|
||||
@@ -110,18 +110,18 @@ define(["domReady", "jquery", "underscore", "js/utils/cancel_on_escape", "js/vie
|
||||
var lib_info = {
|
||||
org: org,
|
||||
number: number,
|
||||
display_name: display_name,
|
||||
display_name: display_name
|
||||
};
|
||||
|
||||
analytics.track('Created a Library', lib_info);
|
||||
CreateLibraryUtils.create(lib_info, function (errorMessage) {
|
||||
CreateLibraryUtils.create(lib_info, function(errorMessage) {
|
||||
$('.create-library .wrap-error').addClass('is-shown');
|
||||
$('#library_creation_error').html('<p>' + errorMessage + '</p>');
|
||||
$('.new-library-save').addClass('is-disabled').attr('aria-disabled', true);
|
||||
});
|
||||
};
|
||||
|
||||
var addNewLibrary = function (e) {
|
||||
var addNewLibrary = function(e) {
|
||||
e.preventDefault();
|
||||
$('.new-library-button').addClass('is-disabled').attr('aria-disabled', true);
|
||||
$('.new-library-save').addClass('is-disabled').attr('aria-disabled', true);
|
||||
@@ -137,22 +137,22 @@ define(["domReady", "jquery", "underscore", "js/utils/cancel_on_escape", "js/vie
|
||||
};
|
||||
|
||||
var showTab = function(tab) {
|
||||
return function(e) {
|
||||
e.preventDefault();
|
||||
$('.courses-tab').toggleClass('active', tab === 'courses');
|
||||
$('.libraries-tab').toggleClass('active', tab === 'libraries');
|
||||
$('.programs-tab').toggleClass('active', tab === 'programs');
|
||||
return function(e) {
|
||||
e.preventDefault();
|
||||
$('.courses-tab').toggleClass('active', tab === 'courses');
|
||||
$('.libraries-tab').toggleClass('active', tab === 'libraries');
|
||||
$('.programs-tab').toggleClass('active', tab === 'programs');
|
||||
|
||||
// Also toggle this course-related notice shown below the course tab, if it is present:
|
||||
$('.wrapper-creationrights').toggleClass('is-hidden', tab !== 'courses');
|
||||
};
|
||||
$('.wrapper-creationrights').toggleClass('is-hidden', tab !== 'courses');
|
||||
};
|
||||
};
|
||||
|
||||
var onReady = function () {
|
||||
var onReady = function() {
|
||||
$('.new-course-button').bind('click', addNewCourse);
|
||||
$('.new-library-button').bind('click', addNewLibrary);
|
||||
|
||||
$('.dismiss-button').bind('click', ViewUtils.deleteNotificationHandler(function () {
|
||||
$('.dismiss-button').bind('click', ViewUtils.deleteNotificationHandler(function() {
|
||||
ViewUtils.reload();
|
||||
}));
|
||||
|
||||
|
||||
79
cms/static/js/maintenance/force_publish_course.js
Normal file
79
cms/static/js/maintenance/force_publish_course.js
Normal file
@@ -0,0 +1,79 @@
|
||||
define([ // jshint ignore:line
|
||||
'jquery',
|
||||
'underscore',
|
||||
'gettext',
|
||||
'common/js/components/utils/view_utils',
|
||||
'edx-ui-toolkit/js/utils/string-utils',
|
||||
'edx-ui-toolkit/js/utils/html-utils'
|
||||
],
|
||||
function($, _, gettext, ViewUtils, StringUtils, HtmlUtils) {
|
||||
'use strict';
|
||||
return function(maintenanceViewURL) {
|
||||
var showError;
|
||||
// Reset values
|
||||
$('#reset-button').click(function(e) {
|
||||
e.preventDefault();
|
||||
$('#course-id').val('');
|
||||
$('#dry-run').prop('checked', true);
|
||||
// clear out result container
|
||||
$('#result-container').html('');
|
||||
});
|
||||
|
||||
showError = function(containerElSelector, error) {
|
||||
var errorWrapperElSelector, errorHtml;
|
||||
errorWrapperElSelector = containerElSelector + ' .wrapper-error';
|
||||
errorHtml = '<div class="error" aria-live="polite" id="course-id-error">' + error + '</div>';
|
||||
HtmlUtils.setHtml($(errorWrapperElSelector), HtmlUtils.HTML(errorHtml));
|
||||
$(errorWrapperElSelector).css('display', 'inline-block');
|
||||
$(errorWrapperElSelector).fadeOut(5000);
|
||||
};
|
||||
|
||||
$('form#force_publish').submit(function(event) {
|
||||
var attrs, forcePublishedTemplate, $submitButton, deferred, promise, data;
|
||||
event.preventDefault();
|
||||
|
||||
// clear out result container
|
||||
$('#result-container').html('');
|
||||
|
||||
$submitButton = $('#submit_force_publish');
|
||||
deferred = new $.Deferred();
|
||||
promise = deferred.promise();
|
||||
|
||||
data = $('#force_publish').serialize();
|
||||
|
||||
// disable submit button while executing.
|
||||
ViewUtils.disableElementWhileRunning($submitButton, function() { return promise; });
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: maintenanceViewURL,
|
||||
dataType: 'json',
|
||||
data: data
|
||||
})
|
||||
.done(function(response) {
|
||||
if (response.error) {
|
||||
showError('#course-id-container', response.msg);
|
||||
} else {
|
||||
if (response.msg) {
|
||||
showError('#result-error', response.msg);
|
||||
} else {
|
||||
attrs = $.extend({}, response, {StringUtils: StringUtils});
|
||||
forcePublishedTemplate = HtmlUtils.template(
|
||||
$('#force-published-course-response-tpl').text()
|
||||
);
|
||||
HtmlUtils.setHtml($('#result-container'), forcePublishedTemplate(attrs));
|
||||
}
|
||||
}
|
||||
})
|
||||
.fail(function() {
|
||||
// response.responseText here because it would show some strange output, it may output Traceback
|
||||
// sometimes if unexpected issue arises. Better to show just internal error when getting 500 error.
|
||||
showError('#result-error', gettext('Internal Server Error.'));
|
||||
})
|
||||
.always(function() {
|
||||
deferred.resolve();
|
||||
});
|
||||
});
|
||||
};
|
||||
});
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
define(
|
||||
["backbone", "gettext"],
|
||||
['backbone', 'gettext'],
|
||||
function(Backbone, gettext) {
|
||||
"use strict";
|
||||
'use strict';
|
||||
|
||||
var statusStrings = {
|
||||
// Translators: This is the status of a video upload that is queued
|
||||
// waiting for other uploads to complete
|
||||
STATUS_QUEUED: gettext("Queued"),
|
||||
STATUS_QUEUED: gettext('Queued'),
|
||||
// Translators: This is the status of an active video upload
|
||||
STATUS_UPLOADING: gettext("Uploading"),
|
||||
STATUS_UPLOADING: gettext('Uploading'),
|
||||
// Translators: This is the status of a video upload that has
|
||||
// completed successfully
|
||||
STATUS_COMPLETED: gettext("Upload completed"),
|
||||
STATUS_COMPLETED: gettext('Upload completed'),
|
||||
// Translators: This is the status of a video upload that has failed
|
||||
STATUS_FAILED: gettext("Upload failed")
|
||||
STATUS_FAILED: gettext('Upload failed')
|
||||
};
|
||||
|
||||
var ActiveVideoUpload = Backbone.Model.extend(
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
define(["backbone"], function(Backbone) {
|
||||
define(['backbone'], function(Backbone) {
|
||||
/**
|
||||
* Simple model for an asset.
|
||||
*/
|
||||
var Asset = Backbone.Model.extend({
|
||||
defaults: {
|
||||
display_name: "",
|
||||
content_type: "",
|
||||
thumbnail: "",
|
||||
date_added: "",
|
||||
url: "",
|
||||
external_url: "",
|
||||
portable_url: "",
|
||||
locked: false
|
||||
},
|
||||
get_extension: function(){
|
||||
var name_segments = this.get("display_name").split(".").reverse();
|
||||
var asset_type = (name_segments.length > 1) ? name_segments[0].toUpperCase() : "";
|
||||
return asset_type;
|
||||
}
|
||||
});
|
||||
return Asset;
|
||||
var Asset = Backbone.Model.extend({
|
||||
defaults: {
|
||||
display_name: '',
|
||||
content_type: '',
|
||||
thumbnail: '',
|
||||
date_added: '',
|
||||
url: '',
|
||||
external_url: '',
|
||||
portable_url: '',
|
||||
locked: false
|
||||
},
|
||||
get_extension: function() {
|
||||
var name_segments = this.get('display_name').split('.').reverse();
|
||||
var asset_type = (name_segments.length > 1) ? name_segments[0].toUpperCase() : '';
|
||||
return asset_type;
|
||||
}
|
||||
});
|
||||
return Asset;
|
||||
});
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
define(["backbone", "underscore"], function(Backbone, _) {
|
||||
define(['backbone', 'underscore'], function(Backbone, _) {
|
||||
var AssignmentGrade = Backbone.Model.extend({
|
||||
defaults : {
|
||||
graderType : null, // the type label (string). May be "notgraded" which implies None.
|
||||
locator : null // locator for the block
|
||||
defaults: {
|
||||
graderType: null, // the type label (string). May be "notgraded" which implies None.
|
||||
locator: null // locator for the block
|
||||
},
|
||||
idAttribute: 'locator',
|
||||
urlRoot : '/xblock/',
|
||||
urlRoot: '/xblock/',
|
||||
url: function() {
|
||||
// add ?fields=graderType to the request url (only needed for fetch, but innocuous for others)
|
||||
return Backbone.Model.prototype.url.apply(this) + '?' + $.param({fields: 'graderType'});
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
define(["backbone", "gettext", "backbone.associations"], function(Backbone, gettext) {
|
||||
define(['backbone', 'gettext', 'backbone.associations'], function(Backbone, gettext) {
|
||||
var Chapter = Backbone.AssociatedModel.extend({
|
||||
defaults: function() {
|
||||
return {
|
||||
name: "",
|
||||
asset_path: "",
|
||||
name: '',
|
||||
asset_path: '',
|
||||
order: this.collection ? this.collection.nextOrder() : 1
|
||||
};
|
||||
},
|
||||
@@ -11,11 +11,11 @@ define(["backbone", "gettext", "backbone.associations"], function(Backbone, gett
|
||||
return !this.get('name') && !this.get('asset_path');
|
||||
},
|
||||
parse: function(response) {
|
||||
if("title" in response && !("name" in response)) {
|
||||
if ('title' in response && !('name' in response)) {
|
||||
response.name = response.title;
|
||||
delete response.title;
|
||||
}
|
||||
if("url" in response && !("asset_path" in response)) {
|
||||
if ('url' in response && !('asset_path' in response)) {
|
||||
response.asset_path = response.url;
|
||||
delete response.url;
|
||||
}
|
||||
@@ -30,19 +30,19 @@ define(["backbone", "gettext", "backbone.associations"], function(Backbone, gett
|
||||
// NOTE: validation functions should return non-internationalized error
|
||||
// messages. The messages will be passed through gettext in the template.
|
||||
validate: function(attrs, options) {
|
||||
if(!attrs.name && !attrs.asset_path) {
|
||||
if (!attrs.name && !attrs.asset_path) {
|
||||
return {
|
||||
message: gettext("Chapter name and asset_path are both required"),
|
||||
message: gettext('Chapter name and asset_path are both required'),
|
||||
attributes: {name: true, asset_path: true}
|
||||
};
|
||||
} else if(!attrs.name) {
|
||||
} else if (!attrs.name) {
|
||||
return {
|
||||
message: gettext("Chapter name is required"),
|
||||
message: gettext('Chapter name is required'),
|
||||
attributes: {name: true}
|
||||
};
|
||||
} else if (!attrs.asset_path) {
|
||||
return {
|
||||
message: gettext("asset_path is required"),
|
||||
message: gettext('asset_path is required'),
|
||||
attributes: {asset_path: true}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
define(["backbone"], function(Backbone) {
|
||||
define(['backbone'], function(Backbone) {
|
||||
var Checklist = Backbone.Model.extend({
|
||||
});
|
||||
return Checklist;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/**
|
||||
* Simple model for adding a component of a given type (for example, "video" or "html").
|
||||
*/
|
||||
define(["backbone"], function (Backbone) {
|
||||
define(['backbone'], function(Backbone) {
|
||||
return Backbone.Model.extend({
|
||||
defaults: {
|
||||
type: "",
|
||||
type: '',
|
||||
// Each entry in the template array is an Object with the following keys:
|
||||
// display_name
|
||||
// category (may or may not match "type")
|
||||
@@ -13,7 +13,7 @@ define(["backbone"], function (Backbone) {
|
||||
templates: [],
|
||||
support_legend: {}
|
||||
},
|
||||
parse: function (response) {
|
||||
parse: function(response) {
|
||||
// Returns true only for templates that both have no boilerplate and are of
|
||||
// the overall type of the menu. This allows other component types to be added
|
||||
// and they will get sorted alphabetically rather than just at the top.
|
||||
@@ -28,7 +28,7 @@ define(["backbone"], function (Backbone) {
|
||||
this.support_legend = response.support_legend;
|
||||
|
||||
// Sort the templates.
|
||||
this.templates.sort(function (a, b) {
|
||||
this.templates.sort(function(a, b) {
|
||||
// The blank problem for the current type goes first
|
||||
if (isPrimaryBlankTemplate(a)) {
|
||||
return -1;
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
define(['backbone'], function(Backbone){
|
||||
define(['backbone'], function(Backbone) {
|
||||
var Course = Backbone.Model.extend({
|
||||
defaults: {
|
||||
"name": ""
|
||||
'name': ''
|
||||
},
|
||||
validate: function(attrs, options) {
|
||||
if (!attrs.name) {
|
||||
return gettext("You must specify a name");
|
||||
return gettext('You must specify a name');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
define(["backbone"], function(Backbone) {
|
||||
define(['backbone'], function(Backbone) {
|
||||
// single per course holds the updates and handouts
|
||||
var CourseInfo = Backbone.Model.extend({
|
||||
// This model class is not suited for restful operations and is considered just a server side initialized container
|
||||
url: '',
|
||||
|
||||
defaults: {
|
||||
"updates" : null, // UpdateCollection
|
||||
"handouts": null // HandoutCollection
|
||||
}
|
||||
'updates': null, // UpdateCollection
|
||||
'handouts': null // HandoutCollection
|
||||
}
|
||||
});
|
||||
return CourseInfo;
|
||||
});
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
define(["backbone", "jquery", "jquery.ui"], function(Backbone, $) {
|
||||
define(['backbone', 'jquery', 'jquery.ui'], function(Backbone, $) {
|
||||
// course update -- biggest kludge here is the lack of a real id to map updates to originals
|
||||
var CourseUpdate = Backbone.Model.extend({
|
||||
defaults: {
|
||||
"date" : $.datepicker.formatDate('MM d, yy', new Date()),
|
||||
"content" : "",
|
||||
"push_notification_enabled": false,
|
||||
"push_notification_selected" : false
|
||||
'date': $.datepicker.formatDate('MM d, yy', new Date()),
|
||||
'content': '',
|
||||
'push_notification_enabled': false,
|
||||
'push_notification_selected': false
|
||||
},
|
||||
validate: function(attrs) {
|
||||
var date_exists = (attrs.date !== null && attrs.date !== "");
|
||||
var date_exists = (attrs.date !== null && attrs.date !== '');
|
||||
var date_is_valid_string = ($.datepicker.formatDate('MM d, yy', new Date(attrs.date)) === attrs.date);
|
||||
if (!(date_exists && date_is_valid_string)) {
|
||||
return {"date_required": gettext("Action required: Enter a valid date.")};
|
||||
return {'date_required': gettext('Action required: Enter a valid date.')};
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
define(["js/models/xblock_info"],
|
||||
define(['js/models/xblock_info'],
|
||||
function(XBlockInfo) {
|
||||
var CustomSyncXBlockInfo = XBlockInfo.extend({
|
||||
sync: function(method, model, options) {
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
* A model that simply allows the update URL to be passed
|
||||
* in as an argument.
|
||||
*/
|
||||
define(["backbone"], function(Backbone){
|
||||
define(['backbone'], function(Backbone) {
|
||||
return Backbone.Model.extend({
|
||||
defaults: {
|
||||
"explicit_url": ""
|
||||
'explicit_url': ''
|
||||
},
|
||||
url: function() {
|
||||
return this.get("explicit_url");
|
||||
return this.get('explicit_url');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -12,13 +12,13 @@ define([
|
||||
usage: []
|
||||
};
|
||||
},
|
||||
url : function() {
|
||||
url: function() {
|
||||
var parentModel = this.collection.parents[0];
|
||||
return parentModel.urlRoot + '/' + encodeURIComponent(parentModel.id) + '/' + encodeURIComponent(this.id);
|
||||
},
|
||||
|
||||
reset: function() {
|
||||
this.set(this._originalAttributes, { parse: true });
|
||||
this.set(this._originalAttributes, {parse: true});
|
||||
},
|
||||
|
||||
isEmpty: function() {
|
||||
@@ -31,14 +31,14 @@ define([
|
||||
name: this.get('name'),
|
||||
version: this.get('version'),
|
||||
usage: this.get('usage')
|
||||
};
|
||||
};
|
||||
},
|
||||
|
||||
validate: function(attrs) {
|
||||
if (!str.trim(attrs.name)) {
|
||||
return {
|
||||
message: gettext('Group name is required'),
|
||||
attributes: { name: true }
|
||||
attributes: {name: true}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,43 +1,43 @@
|
||||
define(["backbone", "underscore"], function(Backbone, _) {
|
||||
define(['backbone', 'underscore'], function(Backbone, _) {
|
||||
var LicenseModel = Backbone.Model.extend({
|
||||
defaults: {
|
||||
"type": null,
|
||||
"options": {},
|
||||
"custom": false // either `false`, or a string
|
||||
'type': null,
|
||||
'options': {},
|
||||
'custom': false // either `false`, or a string
|
||||
},
|
||||
|
||||
initialize: function(attributes) {
|
||||
if(attributes && attributes.asString) {
|
||||
if (attributes && attributes.asString) {
|
||||
this.setFromString(attributes.asString);
|
||||
this.unset("asString");
|
||||
this.unset('asString');
|
||||
}
|
||||
},
|
||||
|
||||
toString: function() {
|
||||
var custom = this.get("custom");
|
||||
var custom = this.get('custom');
|
||||
if (custom) {
|
||||
return custom;
|
||||
}
|
||||
|
||||
var type = this.get("type"),
|
||||
options = this.get("options");
|
||||
var type = this.get('type'),
|
||||
options = this.get('options');
|
||||
|
||||
if (_.isEmpty(options)) {
|
||||
return type || "";
|
||||
return type || '';
|
||||
}
|
||||
|
||||
// options are where it gets tricky
|
||||
var optionStrings = _.map(options, function (value, key) {
|
||||
if(_.isBoolean(value)) {
|
||||
return value ? key : null
|
||||
var optionStrings = _.map(options, function(value, key) {
|
||||
if (_.isBoolean(value)) {
|
||||
return value ? key : null;
|
||||
} else {
|
||||
return key + "=" + value
|
||||
return key + '=' + value;
|
||||
}
|
||||
});
|
||||
// filter out nulls
|
||||
optionStrings = _.filter(optionStrings, _.identity);
|
||||
// build license string and return
|
||||
return type + ": " + optionStrings.join(" ");
|
||||
return type + ': ' + optionStrings.join(' ');
|
||||
},
|
||||
|
||||
setFromString: function(string, options) {
|
||||
@@ -46,8 +46,8 @@ define(["backbone", "underscore"], function(Backbone, _) {
|
||||
return this.set(this.defaults, options);
|
||||
}
|
||||
|
||||
var colonIndex = string.indexOf(":"),
|
||||
spaceIndex = string.indexOf(" ");
|
||||
var colonIndex = string.indexOf(':'),
|
||||
spaceIndex = string.indexOf(' ');
|
||||
|
||||
// a string without a colon could be a custom license, or a license
|
||||
// type without options
|
||||
@@ -55,16 +55,16 @@ define(["backbone", "underscore"], function(Backbone, _) {
|
||||
if (spaceIndex == -1) {
|
||||
// if there's no space, it's a license type without options
|
||||
return this.set({
|
||||
"type": string,
|
||||
"options": {},
|
||||
"custom": false
|
||||
'type': string,
|
||||
'options': {},
|
||||
'custom': false
|
||||
}, options);
|
||||
} else {
|
||||
// if there is a space, it's a custom license
|
||||
return this.set({
|
||||
"type": null,
|
||||
"options": {},
|
||||
"custom": string
|
||||
'type': null,
|
||||
'options': {},
|
||||
'custom': string
|
||||
}, options);
|
||||
}
|
||||
}
|
||||
@@ -74,24 +74,24 @@ define(["backbone", "underscore"], function(Backbone, _) {
|
||||
optionsObj = {},
|
||||
optionsString = string.substring(colonIndex + 1);
|
||||
|
||||
_.each(optionsString.split(" "), function(optionString) {
|
||||
if (_.isEmpty(optionString)) {
|
||||
return;
|
||||
}
|
||||
var eqIndex = optionString.indexOf("=");
|
||||
if(eqIndex == -1) {
|
||||
_.each(optionsString.split(' '), function(optionString) {
|
||||
if (_.isEmpty(optionString)) {
|
||||
return;
|
||||
}
|
||||
var eqIndex = optionString.indexOf('=');
|
||||
if (eqIndex == -1) {
|
||||
// this is a boolean flag
|
||||
optionsObj[optionString] = true;
|
||||
} else {
|
||||
optionsObj[optionString] = true;
|
||||
} else {
|
||||
// this is a key-value pair
|
||||
var optionKey = optionString.substring(0, eqIndex);
|
||||
var optionVal = optionString.substring(eqIndex + 1);
|
||||
optionsObj[optionKey] = optionVal;
|
||||
}
|
||||
});
|
||||
var optionKey = optionString.substring(0, eqIndex);
|
||||
var optionVal = optionString.substring(eqIndex + 1);
|
||||
optionsObj[optionKey] = optionVal;
|
||||
}
|
||||
});
|
||||
|
||||
return this.set({
|
||||
"type": type, "options": optionsObj, "custom": false,
|
||||
'type': type, 'options': optionsObj, 'custom': false
|
||||
}, options);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
define(["backbone", "underscore"], function(Backbone, _) {
|
||||
define(['backbone', 'underscore'], function(Backbone, _) {
|
||||
var Location = Backbone.Model.extend({
|
||||
defaults: {
|
||||
tag: "",
|
||||
org: "",
|
||||
course: "",
|
||||
category: "",
|
||||
name: ""
|
||||
tag: '',
|
||||
org: '',
|
||||
course: '',
|
||||
category: '',
|
||||
name: ''
|
||||
},
|
||||
toUrl: function(overrides) {
|
||||
return
|
||||
(overrides && overrides['tag'] ? overrides['tag'] : this.get('tag')) + "://" +
|
||||
(overrides && overrides['org'] ? overrides['org'] : this.get('org')) + "/" +
|
||||
(overrides && overrides['course'] ? overrides['course'] : this.get('course')) + "/" +
|
||||
(overrides && overrides['category'] ? overrides['category'] : this.get('category')) + "/" +
|
||||
(overrides && overrides['name'] ? overrides['name'] : this.get('name')) + "/";
|
||||
return;
|
||||
(overrides && overrides['tag'] ? overrides['tag'] : this.get('tag')) + '://' +
|
||||
(overrides && overrides['org'] ? overrides['org'] : this.get('org')) + '/' +
|
||||
(overrides && overrides['course'] ? overrides['course'] : this.get('course')) + '/' +
|
||||
(overrides && overrides['category'] ? overrides['category'] : this.get('category')) + '/' +
|
||||
(overrides && overrides['name'] ? overrides['name'] : this.get('name')) + '/';
|
||||
},
|
||||
_tagPattern : /[^:]+/g,
|
||||
_fieldPattern : new RegExp('[^/]+','g'),
|
||||
_tagPattern: /[^:]+/g,
|
||||
_fieldPattern: new RegExp('[^/]+', 'g'),
|
||||
|
||||
parse: function(payload) {
|
||||
if (_.isArray(payload)) {
|
||||
@@ -47,12 +47,12 @@ define(["backbone", "underscore"], function(Backbone, _) {
|
||||
return payload;
|
||||
}
|
||||
},
|
||||
getNextField : function(payload) {
|
||||
getNextField: function(payload) {
|
||||
try {
|
||||
return this._fieldPattern.exec(payload)[0];
|
||||
}
|
||||
catch (err) {
|
||||
return "";
|
||||
return '';
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
define(["backbone"], function(Backbone) {
|
||||
define(['backbone'], function(Backbone) {
|
||||
/**
|
||||
* Model used for metadata setting editors. This model does not do its own saving,
|
||||
* as that is done by module_edit.coffee.
|
||||
*/
|
||||
var Metadata = Backbone.Model.extend({
|
||||
defaults: {
|
||||
"field_name": null,
|
||||
"display_name": null,
|
||||
"value" : null,
|
||||
"explicitly_set": null,
|
||||
"default_value" : null,
|
||||
"options" : null,
|
||||
"type" : null
|
||||
'field_name': null,
|
||||
'display_name': null,
|
||||
'value': null,
|
||||
'explicitly_set': null,
|
||||
'default_value': null,
|
||||
'options': null,
|
||||
'type': null
|
||||
},
|
||||
|
||||
initialize: function() {
|
||||
@@ -23,7 +23,7 @@ define(["backbone"], function(Backbone) {
|
||||
* Returns true if the stored value is different, or if the "explicitly_set"
|
||||
* property has changed.
|
||||
*/
|
||||
isModified : function() {
|
||||
isModified: function() {
|
||||
if (!this.get('explicitly_set') && !this.original_explicitly_set) {
|
||||
return false;
|
||||
}
|
||||
@@ -43,7 +43,7 @@ define(["backbone"], function(Backbone) {
|
||||
/**
|
||||
* The value, as shown in the UI. This may be an inherited or default value.
|
||||
*/
|
||||
getDisplayValue : function () {
|
||||
getDisplayValue: function() {
|
||||
return this.get('value');
|
||||
},
|
||||
|
||||
@@ -59,7 +59,7 @@ define(["backbone"], function(Backbone) {
|
||||
/**
|
||||
* Sets the displayed value.
|
||||
*/
|
||||
setValue: function (value) {
|
||||
setValue: function(value) {
|
||||
this.set({
|
||||
explicitly_set: true,
|
||||
value: value
|
||||
@@ -70,7 +70,7 @@ define(["backbone"], function(Backbone) {
|
||||
* Returns the field name, which should be used for persisting the metadata
|
||||
* field to the server.
|
||||
*/
|
||||
getFieldName: function () {
|
||||
getFieldName: function() {
|
||||
return this.get('field_name');
|
||||
},
|
||||
|
||||
@@ -78,7 +78,7 @@ define(["backbone"], function(Backbone) {
|
||||
* Returns the options. This may be a array of possible values, or an object
|
||||
* with properties like "max", "min" and "step".
|
||||
*/
|
||||
getOptions: function () {
|
||||
getOptions: function() {
|
||||
return this.get('options');
|
||||
},
|
||||
|
||||
@@ -102,14 +102,14 @@ define(["backbone"], function(Backbone) {
|
||||
}
|
||||
});
|
||||
|
||||
Metadata.SELECT_TYPE = "Select";
|
||||
Metadata.INTEGER_TYPE = "Integer";
|
||||
Metadata.FLOAT_TYPE = "Float";
|
||||
Metadata.GENERIC_TYPE = "Generic";
|
||||
Metadata.LIST_TYPE = "List";
|
||||
Metadata.DICT_TYPE = "Dict";
|
||||
Metadata.VIDEO_LIST_TYPE = "VideoList";
|
||||
Metadata.RELATIVE_TIME_TYPE = "RelativeTime";
|
||||
Metadata.SELECT_TYPE = 'Select';
|
||||
Metadata.INTEGER_TYPE = 'Integer';
|
||||
Metadata.FLOAT_TYPE = 'Float';
|
||||
Metadata.GENERIC_TYPE = 'Generic';
|
||||
Metadata.LIST_TYPE = 'List';
|
||||
Metadata.DICT_TYPE = 'Dict';
|
||||
Metadata.VIDEO_LIST_TYPE = 'VideoList';
|
||||
Metadata.RELATIVE_TIME_TYPE = 'RelativeTime';
|
||||
|
||||
return Metadata;
|
||||
});
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
define(["backbone", "js/utils/module"], function(Backbone, ModuleUtils) {
|
||||
define(['backbone', 'js/utils/module'], function(Backbone, ModuleUtils) {
|
||||
var ModuleInfo = Backbone.Model.extend({
|
||||
urlRoot: ModuleUtils.urlRoot,
|
||||
urlRoot: ModuleUtils.urlRoot,
|
||||
|
||||
defaults: {
|
||||
"id": null,
|
||||
"data": null,
|
||||
"metadata" : null,
|
||||
"children" : null
|
||||
}
|
||||
defaults: {
|
||||
'id': null,
|
||||
'data': null,
|
||||
'metadata': null,
|
||||
'children': null
|
||||
}
|
||||
});
|
||||
return ModuleInfo;
|
||||
});
|
||||
|
||||
@@ -1,39 +1,38 @@
|
||||
define(["backbone", "gettext", "common/js/components/views/feedback_notification", "js/utils/module"],
|
||||
define(['backbone', 'gettext', 'common/js/components/views/feedback_notification', 'js/utils/module'],
|
||||
function(Backbone, gettext, NotificationView, ModuleUtils) {
|
||||
|
||||
var Section = Backbone.Model.extend({
|
||||
defaults: {
|
||||
"name": ""
|
||||
},
|
||||
validate: function(attrs, options) {
|
||||
if (!attrs.name) {
|
||||
return gettext("You must specify a name");
|
||||
}
|
||||
},
|
||||
urlRoot: ModuleUtils.urlRoot,
|
||||
toJSON: function() {
|
||||
return {
|
||||
metadata: {
|
||||
display_name: this.get("name")
|
||||
var Section = Backbone.Model.extend({
|
||||
defaults: {
|
||||
'name': ''
|
||||
},
|
||||
validate: function(attrs, options) {
|
||||
if (!attrs.name) {
|
||||
return gettext('You must specify a name');
|
||||
}
|
||||
};
|
||||
},
|
||||
initialize: function() {
|
||||
this.listenTo(this, "request", this.showNotification);
|
||||
this.listenTo(this, "sync", this.hideNotification);
|
||||
},
|
||||
showNotification: function() {
|
||||
if(!this.msg) {
|
||||
this.msg = new NotificationView.Mini({
|
||||
title: gettext("Saving")
|
||||
});
|
||||
},
|
||||
urlRoot: ModuleUtils.urlRoot,
|
||||
toJSON: function() {
|
||||
return {
|
||||
metadata: {
|
||||
display_name: this.get('name')
|
||||
}
|
||||
};
|
||||
},
|
||||
initialize: function() {
|
||||
this.listenTo(this, 'request', this.showNotification);
|
||||
this.listenTo(this, 'sync', this.hideNotification);
|
||||
},
|
||||
showNotification: function() {
|
||||
if (!this.msg) {
|
||||
this.msg = new NotificationView.Mini({
|
||||
title: gettext('Saving')
|
||||
});
|
||||
}
|
||||
this.msg.show();
|
||||
},
|
||||
hideNotification: function() {
|
||||
if (!this.msg) { return; }
|
||||
this.msg.hide();
|
||||
}
|
||||
this.msg.show();
|
||||
},
|
||||
hideNotification: function() {
|
||||
if(!this.msg) { return; }
|
||||
this.msg.hide();
|
||||
}
|
||||
});
|
||||
return Section;
|
||||
});
|
||||
return Section;
|
||||
});
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
define(["backbone"], function(Backbone) {
|
||||
define(['backbone'], function(Backbone) {
|
||||
var Advanced = Backbone.Model.extend({
|
||||
|
||||
var Advanced = Backbone.Model.extend({
|
||||
|
||||
defaults: {
|
||||
defaults: {
|
||||
// There will be one property per course setting. Each property's value is an object with keys
|
||||
// 'display_name', 'help', 'value', and 'deprecated. The property keys are the setting names.
|
||||
// For instance: advanced_modules: {display_name: "Advanced Modules, help:"Beta modules...",
|
||||
// value: ["word_cloud", "split_module"], deprecated: False}
|
||||
// Only 'value' is editable.
|
||||
},
|
||||
},
|
||||
|
||||
validate: function (attrs) {
|
||||
validate: function(attrs) {
|
||||
// Keys can no longer be edited. We are currently not validating values.
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return Advanced;
|
||||
return Advanced;
|
||||
}); // end define()
|
||||
|
||||
@@ -1,108 +1,106 @@
|
||||
define(["backbone", "underscore", "gettext", "js/models/validation_helpers", "js/utils/date_utils"],
|
||||
define(['backbone', 'underscore', 'gettext', 'js/models/validation_helpers', 'js/utils/date_utils'],
|
||||
function(Backbone, _, gettext, ValidationHelpers, DateUtils) {
|
||||
var CourseDetails = Backbone.Model.extend({
|
||||
defaults: {
|
||||
org: '',
|
||||
course_id: '',
|
||||
run: '',
|
||||
language: '',
|
||||
start_date: null, // maps to 'start'
|
||||
end_date: null, // maps to 'end'
|
||||
enrollment_start: null,
|
||||
enrollment_end: null,
|
||||
syllabus: null,
|
||||
title: '',
|
||||
subtitle: '',
|
||||
duration: '',
|
||||
description: '',
|
||||
short_description: '',
|
||||
overview: '',
|
||||
intro_video: null,
|
||||
effort: null, // an int or null,
|
||||
license: null,
|
||||
course_image_name: '', // the filename
|
||||
course_image_asset_path: '', // the full URL (/c4x/org/course/num/asset/filename)
|
||||
banner_image_name: '',
|
||||
banner_image_asset_path: '',
|
||||
video_thumbnail_image_name: '',
|
||||
video_thumbnail_image_asset_path: '',
|
||||
pre_requisite_courses: [],
|
||||
entrance_exam_enabled: '',
|
||||
entrance_exam_minimum_score_pct: '50',
|
||||
learning_info: [],
|
||||
instructor_info: {}
|
||||
},
|
||||
|
||||
var CourseDetails = Backbone.Model.extend({
|
||||
defaults: {
|
||||
org : '',
|
||||
course_id: '',
|
||||
run: '',
|
||||
language: '',
|
||||
start_date: null, // maps to 'start'
|
||||
end_date: null, // maps to 'end'
|
||||
enrollment_start: null,
|
||||
enrollment_end: null,
|
||||
syllabus: null,
|
||||
title: "",
|
||||
subtitle: "",
|
||||
duration: "",
|
||||
description: "",
|
||||
short_description: "",
|
||||
overview: "",
|
||||
intro_video: null,
|
||||
effort: null, // an int or null,
|
||||
license: null,
|
||||
course_image_name: '', // the filename
|
||||
course_image_asset_path: '', // the full URL (/c4x/org/course/num/asset/filename)
|
||||
banner_image_name: '',
|
||||
banner_image_asset_path: '',
|
||||
video_thumbnail_image_name: '',
|
||||
video_thumbnail_image_asset_path: '',
|
||||
pre_requisite_courses: [],
|
||||
entrance_exam_enabled : '',
|
||||
entrance_exam_minimum_score_pct: '50',
|
||||
learning_info: [],
|
||||
instructor_info: {}
|
||||
},
|
||||
|
||||
validate: function(newattrs) {
|
||||
validate: function(newattrs) {
|
||||
// Returns either nothing (no return call) so that validate works or an object of {field: errorstring} pairs
|
||||
// A bit funny in that the video key validation is asynchronous; so, it won't stop the validation.
|
||||
var errors = {};
|
||||
newattrs = DateUtils.convertDateStringsToObjects(
|
||||
newattrs, ["start_date", "end_date", "enrollment_start", "enrollment_end"]
|
||||
var errors = {};
|
||||
newattrs = DateUtils.convertDateStringsToObjects(
|
||||
newattrs, ['start_date', 'end_date', 'enrollment_start', 'enrollment_end']
|
||||
);
|
||||
|
||||
if (newattrs.start_date === null) {
|
||||
errors.start_date = gettext("The course must have an assigned start date.");
|
||||
}
|
||||
if (newattrs.start_date === null) {
|
||||
errors.start_date = gettext('The course must have an assigned start date.');
|
||||
}
|
||||
|
||||
if (newattrs.start_date && newattrs.end_date && newattrs.start_date >= newattrs.end_date) {
|
||||
errors.end_date = gettext("The course end date must be later than the course start date.");
|
||||
}
|
||||
if (newattrs.start_date && newattrs.enrollment_start && newattrs.start_date < newattrs.enrollment_start) {
|
||||
errors.enrollment_start = gettext("The course start date must be later than the enrollment start date.");
|
||||
}
|
||||
if (newattrs.enrollment_start && newattrs.enrollment_end && newattrs.enrollment_start >= newattrs.enrollment_end) {
|
||||
errors.enrollment_end = gettext("The enrollment start date cannot be after the enrollment end date.");
|
||||
}
|
||||
if (newattrs.end_date && newattrs.enrollment_end && newattrs.end_date < newattrs.enrollment_end) {
|
||||
errors.enrollment_end = gettext("The enrollment end date cannot be after the course end date.");
|
||||
}
|
||||
if (newattrs.intro_video && newattrs.intro_video !== this.get('intro_video')) {
|
||||
if (this._videokey_illegal_chars.exec(newattrs.intro_video)) {
|
||||
errors.intro_video = gettext("Key should only contain letters, numbers, _, or -");
|
||||
}
|
||||
if (newattrs.start_date && newattrs.end_date && newattrs.start_date >= newattrs.end_date) {
|
||||
errors.end_date = gettext('The course end date must be later than the course start date.');
|
||||
}
|
||||
if (newattrs.start_date && newattrs.enrollment_start && newattrs.start_date < newattrs.enrollment_start) {
|
||||
errors.enrollment_start = gettext('The course start date must be later than the enrollment start date.');
|
||||
}
|
||||
if (newattrs.enrollment_start && newattrs.enrollment_end && newattrs.enrollment_start >= newattrs.enrollment_end) {
|
||||
errors.enrollment_end = gettext('The enrollment start date cannot be after the enrollment end date.');
|
||||
}
|
||||
if (newattrs.end_date && newattrs.enrollment_end && newattrs.end_date < newattrs.enrollment_end) {
|
||||
errors.enrollment_end = gettext('The enrollment end date cannot be after the course end date.');
|
||||
}
|
||||
if (newattrs.intro_video && newattrs.intro_video !== this.get('intro_video')) {
|
||||
if (this._videokey_illegal_chars.exec(newattrs.intro_video)) {
|
||||
errors.intro_video = gettext('Key should only contain letters, numbers, _, or -');
|
||||
}
|
||||
// TODO check if key points to a real video using google's youtube api
|
||||
}
|
||||
if(_.has(newattrs, 'entrance_exam_minimum_score_pct')){
|
||||
var range = {
|
||||
min: 1,
|
||||
max: 100
|
||||
};
|
||||
if(!ValidationHelpers.validateIntegerRange(newattrs.entrance_exam_minimum_score_pct, range)){
|
||||
errors.entrance_exam_minimum_score_pct = interpolate(gettext("Please enter an integer between %(min)s and %(max)s."), range, true);
|
||||
}
|
||||
}
|
||||
if (!_.isEmpty(errors)) return errors;
|
||||
}
|
||||
if (_.has(newattrs, 'entrance_exam_minimum_score_pct')) {
|
||||
var range = {
|
||||
min: 1,
|
||||
max: 100
|
||||
};
|
||||
if (!ValidationHelpers.validateIntegerRange(newattrs.entrance_exam_minimum_score_pct, range)) {
|
||||
errors.entrance_exam_minimum_score_pct = interpolate(gettext('Please enter an integer between %(min)s and %(max)s.'), range, true);
|
||||
}
|
||||
}
|
||||
if (!_.isEmpty(errors)) return errors;
|
||||
// NOTE don't return empty errors as that will be interpreted as an error state
|
||||
},
|
||||
},
|
||||
|
||||
_videokey_illegal_chars : /[^a-zA-Z0-9_-]/g,
|
||||
_videokey_illegal_chars: /[^a-zA-Z0-9_-]/g,
|
||||
|
||||
set_videosource: function(newsource) {
|
||||
set_videosource: function(newsource) {
|
||||
// newsource either is <video youtube="speed:key, *"/> or just the "speed:key, *" string
|
||||
// returns the videosource for the preview which iss the key whose speed is closest to 1
|
||||
if (_.isEmpty(newsource) && !_.isEmpty(this.get('intro_video'))) this.set({'intro_video': null}, {validate: true});
|
||||
if (_.isEmpty(newsource) && !_.isEmpty(this.get('intro_video'))) this.set({'intro_video': null}, {validate: true});
|
||||
// TODO remove all whitespace w/in string
|
||||
else {
|
||||
if (this.get('intro_video') !== newsource) this.set('intro_video', newsource, {validate: true});
|
||||
}
|
||||
else {
|
||||
if (this.get('intro_video') !== newsource) this.set('intro_video', newsource, {validate: true});
|
||||
}
|
||||
|
||||
return this.videosourceSample();
|
||||
},
|
||||
return this.videosourceSample();
|
||||
},
|
||||
|
||||
videosourceSample : function() {
|
||||
if (this.has('intro_video')) return "//www.youtube.com/embed/" + this.get('intro_video');
|
||||
else return "";
|
||||
},
|
||||
videosourceSample: function() {
|
||||
if (this.has('intro_video')) return '//www.youtube.com/embed/' + this.get('intro_video');
|
||||
else return '';
|
||||
},
|
||||
|
||||
// Whether or not the course pacing can be toggled. If the course
|
||||
// has already started, returns false; otherwise, returns true.
|
||||
canTogglePace: function () {
|
||||
return new Date() <= new Date(this.get('start_date'));
|
||||
}
|
||||
});
|
||||
canTogglePace: function() {
|
||||
return new Date() <= new Date(this.get('start_date'));
|
||||
}
|
||||
});
|
||||
|
||||
return CourseDetails;
|
||||
|
||||
}); // end define()
|
||||
return CourseDetails;
|
||||
}); // end define()
|
||||
|
||||
@@ -1,79 +1,78 @@
|
||||
define(["backbone", "underscore", "gettext"], function(Backbone, _, gettext) {
|
||||
|
||||
var CourseGrader = Backbone.Model.extend({
|
||||
defaults: {
|
||||
"type" : "", // must be unique w/in collection (ie. w/in course)
|
||||
"min_count" : 1,
|
||||
"drop_count" : 0,
|
||||
"short_label" : "", // what to use in place of type if space is an issue
|
||||
"weight" : 0 // int 0..100
|
||||
},
|
||||
parse : function(attrs) {
|
||||
define(['backbone', 'underscore', 'gettext'], function(Backbone, _, gettext) {
|
||||
var CourseGrader = Backbone.Model.extend({
|
||||
defaults: {
|
||||
'type': '', // must be unique w/in collection (ie. w/in course)
|
||||
'min_count': 1,
|
||||
'drop_count': 0,
|
||||
'short_label': '', // what to use in place of type if space is an issue
|
||||
'weight': 0 // int 0..100
|
||||
},
|
||||
parse: function(attrs) {
|
||||
// round off values while converting them to integer
|
||||
if (attrs['weight']) {
|
||||
attrs.weight = Math.round(attrs.weight);
|
||||
}
|
||||
if (attrs['min_count']) {
|
||||
attrs.min_count = Math.round(attrs.min_count);
|
||||
}
|
||||
if (attrs['drop_count']) {
|
||||
attrs.drop_count = Math.round(attrs.drop_count);
|
||||
}
|
||||
return attrs;
|
||||
},
|
||||
validate : function(attrs) {
|
||||
var errors = {};
|
||||
if (_.has(attrs, 'type')) {
|
||||
if (_.isEmpty(attrs['type'])) {
|
||||
errors.type = "The assignment type must have a name.";
|
||||
if (attrs['weight']) {
|
||||
attrs.weight = Math.round(attrs.weight);
|
||||
}
|
||||
else {
|
||||
if (attrs['min_count']) {
|
||||
attrs.min_count = Math.round(attrs.min_count);
|
||||
}
|
||||
if (attrs['drop_count']) {
|
||||
attrs.drop_count = Math.round(attrs.drop_count);
|
||||
}
|
||||
return attrs;
|
||||
},
|
||||
validate: function(attrs) {
|
||||
var errors = {};
|
||||
if (_.has(attrs, 'type')) {
|
||||
if (_.isEmpty(attrs['type'])) {
|
||||
errors.type = 'The assignment type must have a name.';
|
||||
}
|
||||
else {
|
||||
// FIXME somehow this.collection is unbound sometimes. I can't track down when
|
||||
var existing = this.collection && this.collection.some(function(other) { return (other.cid != this.cid) && (other.get('type') == attrs['type']);}, this);
|
||||
if (existing) {
|
||||
errors.type = gettext("There's already another assignment type with this name.");
|
||||
var existing = this.collection && this.collection.some(function(other) { return (other.cid != this.cid) && (other.get('type') == attrs['type']); }, this);
|
||||
if (existing) {
|
||||
errors.type = gettext("There's already another assignment type with this name.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (_.has(attrs, 'weight')) {
|
||||
var intWeight = Math.round(attrs.weight); // see if this ensures value saved is int
|
||||
if (!isFinite(intWeight) || /\D+/.test(attrs.weight) || intWeight < 0 || intWeight > 100) {
|
||||
errors.weight = gettext("Please enter an integer between 0 and 100.");
|
||||
}
|
||||
else {
|
||||
attrs.weight = intWeight;
|
||||
if (this.collection && attrs.weight > 0) {
|
||||
if (_.has(attrs, 'weight')) {
|
||||
var intWeight = Math.round(attrs.weight); // see if this ensures value saved is int
|
||||
if (!isFinite(intWeight) || /\D+/.test(attrs.weight) || intWeight < 0 || intWeight > 100) {
|
||||
errors.weight = gettext('Please enter an integer between 0 and 100.');
|
||||
}
|
||||
else {
|
||||
attrs.weight = intWeight;
|
||||
if (this.collection && attrs.weight > 0) {
|
||||
// FIXME b/c saves don't update the models if validation fails, we should
|
||||
// either revert the field value to the one in the model and make them make room
|
||||
// or figure out a holistic way to balance the vals across the whole
|
||||
// if ((this.collection.sumWeights() + attrs.weight - this.get('weight')) > 100)
|
||||
// errors.weight = "The weights cannot add to more than 100.";
|
||||
}
|
||||
} }
|
||||
if (_.has(attrs, 'min_count')) {
|
||||
var intMinCount = Math.round(attrs.min_count);
|
||||
if (!isFinite(intMinCount) || /\D+/.test(attrs.min_count) || intMinCount < 1) {
|
||||
errors.min_count = gettext('Please enter an integer greater than 0.');
|
||||
}
|
||||
}}
|
||||
if (_.has(attrs, 'min_count')) {
|
||||
var intMinCount = Math.round(attrs.min_count);
|
||||
if (!isFinite(intMinCount) || /\D+/.test(attrs.min_count) || intMinCount < 1) {
|
||||
errors.min_count = gettext("Please enter an integer greater than 0.");
|
||||
else attrs.min_count = intMinCount;
|
||||
}
|
||||
else attrs.min_count = intMinCount;
|
||||
}
|
||||
if (_.has(attrs, 'drop_count')) {
|
||||
var dropCount = attrs.drop_count;
|
||||
var intDropCount = Math.round(dropCount);
|
||||
if (!isFinite(intDropCount) || /\D+/.test(dropCount) || (_.isString(dropCount) && _.isEmpty(dropCount.trim())) || intDropCount < 0) {
|
||||
errors.drop_count = gettext("Please enter non-negative integer.");
|
||||
if (_.has(attrs, 'drop_count')) {
|
||||
var dropCount = attrs.drop_count;
|
||||
var intDropCount = Math.round(dropCount);
|
||||
if (!isFinite(intDropCount) || /\D+/.test(dropCount) || (_.isString(dropCount) && _.isEmpty(dropCount.trim())) || intDropCount < 0) {
|
||||
errors.drop_count = gettext('Please enter non-negative integer.');
|
||||
}
|
||||
else attrs.drop_count = intDropCount;
|
||||
}
|
||||
else attrs.drop_count = intDropCount;
|
||||
}
|
||||
if (_.has(attrs, 'min_count') && _.has(attrs, 'drop_count') && !_.has(errors, 'min_count') && !_.has(errors, 'drop_count') && attrs.drop_count > attrs.min_count) {
|
||||
var template = _.template(
|
||||
gettext("Cannot drop more <%= types %> assignments than are assigned.")
|
||||
if (_.has(attrs, 'min_count') && _.has(attrs, 'drop_count') && !_.has(errors, 'min_count') && !_.has(errors, 'drop_count') && attrs.drop_count > attrs.min_count) {
|
||||
var template = _.template(
|
||||
gettext('Cannot drop more <%= types %> assignments than are assigned.')
|
||||
);
|
||||
errors.drop_count = template({types: attrs.type});
|
||||
errors.drop_count = template({types: attrs.type});
|
||||
}
|
||||
if (!_.isEmpty(errors)) return errors;
|
||||
}
|
||||
if (!_.isEmpty(errors)) return errors;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return CourseGrader;
|
||||
return CourseGrader;
|
||||
}); // end define()
|
||||
|
||||
@@ -1,96 +1,95 @@
|
||||
define(["backbone", "js/models/location", "js/collections/course_grader"],
|
||||
define(['backbone', 'js/models/location', 'js/collections/course_grader'],
|
||||
function(Backbone, Location, CourseGraderCollection) {
|
||||
|
||||
var CourseGradingPolicy = Backbone.Model.extend({
|
||||
defaults : {
|
||||
graders : null, // CourseGraderCollection
|
||||
grade_cutoffs : null, // CourseGradeCutoff model
|
||||
grace_period : null, // either null or { hours: n, minutes: m, ...}
|
||||
minimum_grade_credit : null // either null or percentage
|
||||
},
|
||||
parse: function(attributes) {
|
||||
if (attributes['graders']) {
|
||||
var graderCollection;
|
||||
var CourseGradingPolicy = Backbone.Model.extend({
|
||||
defaults: {
|
||||
graders: null, // CourseGraderCollection
|
||||
grade_cutoffs: null, // CourseGradeCutoff model
|
||||
grace_period: null, // either null or { hours: n, minutes: m, ...}
|
||||
minimum_grade_credit: null // either null or percentage
|
||||
},
|
||||
parse: function(attributes) {
|
||||
if (attributes['graders']) {
|
||||
var graderCollection;
|
||||
// interesting race condition: if {parse:true} when newing, then parse called before .attributes created
|
||||
if (this.attributes && this.has('graders')) {
|
||||
graderCollection = this.get('graders');
|
||||
graderCollection.reset(attributes.graders, {parse:true});
|
||||
}
|
||||
else {
|
||||
graderCollection = new CourseGraderCollection(attributes.graders, {parse:true});
|
||||
}
|
||||
attributes.graders = graderCollection;
|
||||
}
|
||||
if (this.attributes && this.has('graders')) {
|
||||
graderCollection = this.get('graders');
|
||||
graderCollection.reset(attributes.graders, {parse: true});
|
||||
}
|
||||
else {
|
||||
graderCollection = new CourseGraderCollection(attributes.graders, {parse: true});
|
||||
}
|
||||
attributes.graders = graderCollection;
|
||||
}
|
||||
// If grace period is unset or equal to 00:00 on the server,
|
||||
// it's received as null
|
||||
if (attributes['grace_period'] === null) {
|
||||
attributes.grace_period = {
|
||||
hours: 0,
|
||||
minutes: 0
|
||||
}
|
||||
}
|
||||
if (attributes['grace_period'] === null) {
|
||||
attributes.grace_period = {
|
||||
hours: 0,
|
||||
minutes: 0
|
||||
};
|
||||
}
|
||||
// If minimum_grade_credit is unset or equal to 0 on the server,
|
||||
// it's received as 0
|
||||
if (attributes.minimum_grade_credit === null) {
|
||||
attributes.minimum_grade_credit = 0;
|
||||
}
|
||||
return attributes;
|
||||
},
|
||||
gracePeriodToDate : function() {
|
||||
var newDate = new Date();
|
||||
if (this.has('grace_period') && this.get('grace_period')['hours'])
|
||||
newDate.setHours(this.get('grace_period')['hours']);
|
||||
else newDate.setHours(0);
|
||||
if (this.has('grace_period') && this.get('grace_period')['minutes'])
|
||||
newDate.setMinutes(this.get('grace_period')['minutes']);
|
||||
else newDate.setMinutes(0);
|
||||
if (this.has('grace_period') && this.get('grace_period')['seconds'])
|
||||
newDate.setSeconds(this.get('grace_period')['seconds']);
|
||||
else newDate.setSeconds(0);
|
||||
|
||||
return newDate;
|
||||
},
|
||||
parseGracePeriod : function(grace_period) {
|
||||
// Enforce hours:minutes format
|
||||
if(!/^\d{2,3}:\d{2}$/.test(grace_period)) {
|
||||
return null;
|
||||
}
|
||||
var pieces = grace_period.split(/:/);
|
||||
return {
|
||||
hours: parseInt(pieces[0], 10),
|
||||
minutes: parseInt(pieces[1], 10)
|
||||
}
|
||||
},
|
||||
parseMinimumGradeCredit : function(minimum_grade_credit) {
|
||||
// get the value of minimum grade credit value in percentage
|
||||
if (isNaN(minimum_grade_credit)) {
|
||||
return 0;
|
||||
}
|
||||
return parseInt(minimum_grade_credit);
|
||||
},
|
||||
validate : function(attrs) {
|
||||
if(_.has(attrs, 'grace_period')) {
|
||||
if(attrs['grace_period'] === null) {
|
||||
return {
|
||||
'grace_period': gettext('Grace period must be specified in HH:MM format.')
|
||||
if (attributes.minimum_grade_credit === null) {
|
||||
attributes.minimum_grade_credit = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(this.get('is_credit_course') && _.has(attrs, 'minimum_grade_credit')) {
|
||||
// Getting minimum grade cutoff value
|
||||
var minimum_grade_cutoff = _.min(_.values(attrs.grade_cutoffs));
|
||||
if(isNaN(attrs.minimum_grade_credit) || attrs.minimum_grade_credit === null || attrs.minimum_grade_credit < minimum_grade_cutoff) {
|
||||
return attributes;
|
||||
},
|
||||
gracePeriodToDate: function() {
|
||||
var newDate = new Date();
|
||||
if (this.has('grace_period') && this.get('grace_period')['hours'])
|
||||
newDate.setHours(this.get('grace_period')['hours']);
|
||||
else newDate.setHours(0);
|
||||
if (this.has('grace_period') && this.get('grace_period')['minutes'])
|
||||
newDate.setMinutes(this.get('grace_period')['minutes']);
|
||||
else newDate.setMinutes(0);
|
||||
if (this.has('grace_period') && this.get('grace_period')['seconds'])
|
||||
newDate.setSeconds(this.get('grace_period')['seconds']);
|
||||
else newDate.setSeconds(0);
|
||||
|
||||
return newDate;
|
||||
},
|
||||
parseGracePeriod: function(grace_period) {
|
||||
// Enforce hours:minutes format
|
||||
if (!/^\d{2,3}:\d{2}$/.test(grace_period)) {
|
||||
return null;
|
||||
}
|
||||
var pieces = grace_period.split(/:/);
|
||||
return {
|
||||
'minimum_grade_credit': interpolate(
|
||||
hours: parseInt(pieces[0], 10),
|
||||
minutes: parseInt(pieces[1], 10)
|
||||
};
|
||||
},
|
||||
parseMinimumGradeCredit: function(minimum_grade_credit) {
|
||||
// get the value of minimum grade credit value in percentage
|
||||
if (isNaN(minimum_grade_credit)) {
|
||||
return 0;
|
||||
}
|
||||
return parseInt(minimum_grade_credit);
|
||||
},
|
||||
validate: function(attrs) {
|
||||
if (_.has(attrs, 'grace_period')) {
|
||||
if (attrs['grace_period'] === null) {
|
||||
return {
|
||||
'grace_period': gettext('Grace period must be specified in HH:MM format.')
|
||||
};
|
||||
}
|
||||
}
|
||||
if (this.get('is_credit_course') && _.has(attrs, 'minimum_grade_credit')) {
|
||||
// Getting minimum grade cutoff value
|
||||
var minimum_grade_cutoff = _.min(_.values(attrs.grade_cutoffs));
|
||||
if (isNaN(attrs.minimum_grade_credit) || attrs.minimum_grade_credit === null || attrs.minimum_grade_credit < minimum_grade_cutoff) {
|
||||
return {
|
||||
'minimum_grade_credit': interpolate(
|
||||
gettext('Not able to set passing grade to less than %(minimum_grade_cutoff)s%.'),
|
||||
{minimum_grade_cutoff: minimum_grade_cutoff * 100},
|
||||
true
|
||||
)
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return CourseGradingPolicy;
|
||||
}); // end define()
|
||||
return CourseGradingPolicy;
|
||||
}); // end define()
|
||||
|
||||
@@ -1,90 +1,89 @@
|
||||
define(["backbone", "underscore", "gettext", "js/models/chapter", "js/collections/chapter",
|
||||
"backbone.associations", "cms/js/main"],
|
||||
define(['backbone', 'underscore', 'gettext', 'js/models/chapter', 'js/collections/chapter',
|
||||
'backbone.associations', 'cms/js/main'],
|
||||
function(Backbone, _, gettext, ChapterModel, ChapterCollection) {
|
||||
|
||||
var Textbook = Backbone.AssociatedModel.extend({
|
||||
defaults: function() {
|
||||
return {
|
||||
name: "",
|
||||
chapters: new ChapterCollection([{}]),
|
||||
showChapters: false,
|
||||
editing: false
|
||||
};
|
||||
},
|
||||
relations: [{
|
||||
type: Backbone.Many,
|
||||
key: "chapters",
|
||||
relatedModel: ChapterModel,
|
||||
collectionType: ChapterCollection
|
||||
}],
|
||||
initialize: function() {
|
||||
this.setOriginalAttributes();
|
||||
return this;
|
||||
},
|
||||
setOriginalAttributes: function() {
|
||||
this._originalAttributes = this.parse(this.toJSON());
|
||||
},
|
||||
reset: function() {
|
||||
this.set(this._originalAttributes, {parse: true});
|
||||
},
|
||||
isDirty: function() {
|
||||
return !_.isEqual(this._originalAttributes, this.parse(this.toJSON()));
|
||||
},
|
||||
isEmpty: function() {
|
||||
return !this.get('name') && this.get('chapters').isEmpty();
|
||||
},
|
||||
urlRoot: function() { return CMS.URL.TEXTBOOKS; },
|
||||
parse: function(response) {
|
||||
var ret = $.extend(true, {}, response);
|
||||
if("tab_title" in ret && !("name" in ret)) {
|
||||
ret.name = ret.tab_title;
|
||||
delete ret.tab_title;
|
||||
}
|
||||
if("url" in ret && !("chapters" in ret)) {
|
||||
ret.chapters = {"url": ret.url};
|
||||
delete ret.url;
|
||||
}
|
||||
_.each(ret.chapters, function(chapter, i) {
|
||||
chapter.order = chapter.order || i+1;
|
||||
});
|
||||
return ret;
|
||||
},
|
||||
toJSON: function() {
|
||||
return {
|
||||
tab_title: this.get('name'),
|
||||
chapters: this.get('chapters').toJSON()
|
||||
};
|
||||
},
|
||||
var Textbook = Backbone.AssociatedModel.extend({
|
||||
defaults: function() {
|
||||
return {
|
||||
name: '',
|
||||
chapters: new ChapterCollection([{}]),
|
||||
showChapters: false,
|
||||
editing: false
|
||||
};
|
||||
},
|
||||
relations: [{
|
||||
type: Backbone.Many,
|
||||
key: 'chapters',
|
||||
relatedModel: ChapterModel,
|
||||
collectionType: ChapterCollection
|
||||
}],
|
||||
initialize: function() {
|
||||
this.setOriginalAttributes();
|
||||
return this;
|
||||
},
|
||||
setOriginalAttributes: function() {
|
||||
this._originalAttributes = this.parse(this.toJSON());
|
||||
},
|
||||
reset: function() {
|
||||
this.set(this._originalAttributes, {parse: true});
|
||||
},
|
||||
isDirty: function() {
|
||||
return !_.isEqual(this._originalAttributes, this.parse(this.toJSON()));
|
||||
},
|
||||
isEmpty: function() {
|
||||
return !this.get('name') && this.get('chapters').isEmpty();
|
||||
},
|
||||
urlRoot: function() { return CMS.URL.TEXTBOOKS; },
|
||||
parse: function(response) {
|
||||
var ret = $.extend(true, {}, response);
|
||||
if ('tab_title' in ret && !('name' in ret)) {
|
||||
ret.name = ret.tab_title;
|
||||
delete ret.tab_title;
|
||||
}
|
||||
if ('url' in ret && !('chapters' in ret)) {
|
||||
ret.chapters = {'url': ret.url};
|
||||
delete ret.url;
|
||||
}
|
||||
_.each(ret.chapters, function(chapter, i) {
|
||||
chapter.order = chapter.order || i + 1;
|
||||
});
|
||||
return ret;
|
||||
},
|
||||
toJSON: function() {
|
||||
return {
|
||||
tab_title: this.get('name'),
|
||||
chapters: this.get('chapters').toJSON()
|
||||
};
|
||||
},
|
||||
// NOTE: validation functions should return non-internationalized error
|
||||
// messages. The messages will be passed through gettext in the template.
|
||||
validate: function(attrs, options) {
|
||||
if (!attrs.name) {
|
||||
return {
|
||||
message: gettext("Textbook name is required"),
|
||||
attributes: {name: true}
|
||||
};
|
||||
}
|
||||
if (attrs.chapters.length === 0) {
|
||||
return {
|
||||
message: gettext("Please add at least one chapter"),
|
||||
attributes: {chapters: true}
|
||||
};
|
||||
} else {
|
||||
// validate all chapters
|
||||
var invalidChapters = [];
|
||||
attrs.chapters.each(function(chapter) {
|
||||
if(!chapter.isValid()) {
|
||||
invalidChapters.push(chapter);
|
||||
}
|
||||
});
|
||||
if(!_.isEmpty(invalidChapters)) {
|
||||
validate: function(attrs, options) {
|
||||
if (!attrs.name) {
|
||||
return {
|
||||
message: gettext("All chapters must have a name and asset"),
|
||||
attributes: {chapters: invalidChapters}
|
||||
message: gettext('Textbook name is required'),
|
||||
attributes: {name: true}
|
||||
};
|
||||
}
|
||||
if (attrs.chapters.length === 0) {
|
||||
return {
|
||||
message: gettext('Please add at least one chapter'),
|
||||
attributes: {chapters: true}
|
||||
};
|
||||
} else {
|
||||
// validate all chapters
|
||||
var invalidChapters = [];
|
||||
attrs.chapters.each(function(chapter) {
|
||||
if (!chapter.isValid()) {
|
||||
invalidChapters.push(chapter);
|
||||
}
|
||||
});
|
||||
if (!_.isEmpty(invalidChapters)) {
|
||||
return {
|
||||
message: gettext('All chapters must have a name and asset'),
|
||||
attributes: {chapters: invalidChapters}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return Textbook;
|
||||
});
|
||||
return Textbook;
|
||||
});
|
||||
|
||||
@@ -1,85 +1,84 @@
|
||||
define(["backbone", "underscore", "gettext"], function(Backbone, _, gettext) {
|
||||
|
||||
var FileUpload = Backbone.Model.extend({
|
||||
defaults: {
|
||||
"title": "",
|
||||
"message": "",
|
||||
"selectedFile": null,
|
||||
"uploading": false,
|
||||
"uploadedBytes": 0,
|
||||
"totalBytes": 0,
|
||||
"finished": false,
|
||||
"mimeTypes": [],
|
||||
"fileFormats": []
|
||||
},
|
||||
validate: function(attrs, options) {
|
||||
if(attrs.selectedFile && !this.checkTypeValidity(attrs.selectedFile)) {
|
||||
return {
|
||||
message: _.template(gettext('Only <%= fileTypes %> files can be uploaded. Please select a file ending in <%= fileExtensions %> to upload.'))( // eslint-disable-line max-len
|
||||
define(['backbone', 'underscore', 'gettext'], function(Backbone, _, gettext) {
|
||||
var FileUpload = Backbone.Model.extend({
|
||||
defaults: {
|
||||
'title': '',
|
||||
'message': '',
|
||||
'selectedFile': null,
|
||||
'uploading': false,
|
||||
'uploadedBytes': 0,
|
||||
'totalBytes': 0,
|
||||
'finished': false,
|
||||
'mimeTypes': [],
|
||||
'fileFormats': []
|
||||
},
|
||||
validate: function(attrs, options) {
|
||||
if (attrs.selectedFile && !this.checkTypeValidity(attrs.selectedFile)) {
|
||||
return {
|
||||
message: _.template(gettext('Only <%= fileTypes %> files can be uploaded. Please select a file ending in <%= fileExtensions %> to upload.'))( // eslint-disable-line max-len
|
||||
this.formatValidTypes()
|
||||
),
|
||||
attributes: {selectedFile: true}
|
||||
};
|
||||
}
|
||||
},
|
||||
attributes: {selectedFile: true}
|
||||
};
|
||||
}
|
||||
},
|
||||
// Return a list of this uploader's valid file types
|
||||
fileTypes: function() {
|
||||
var mimeTypes = _.map(
|
||||
fileTypes: function() {
|
||||
var mimeTypes = _.map(
|
||||
this.attributes.mimeTypes,
|
||||
function(type) {
|
||||
return type.split('/')[1].toUpperCase();
|
||||
}
|
||||
),
|
||||
fileFormats = _.map(
|
||||
fileFormats = _.map(
|
||||
this.attributes.fileFormats,
|
||||
function(type) {
|
||||
return type.toUpperCase();
|
||||
}
|
||||
);
|
||||
|
||||
return mimeTypes.concat(fileFormats);
|
||||
},
|
||||
checkTypeValidity: function (file) {
|
||||
var attrs = this.attributes,
|
||||
getRegExp = function (formats) {
|
||||
return mimeTypes.concat(fileFormats);
|
||||
},
|
||||
checkTypeValidity: function(file) {
|
||||
var attrs = this.attributes,
|
||||
getRegExp = function(formats) {
|
||||
// Creates regular expression like: /(?:.+)\.(jpg|png|gif)$/i
|
||||
return RegExp(('(?:.+)\\.(' + formats.join('|') + ')$'), 'i');
|
||||
};
|
||||
return RegExp(('(?:.+)\\.(' + formats.join('|') + ')$'), 'i');
|
||||
};
|
||||
|
||||
return (attrs.mimeTypes.length === 0 && attrs.fileFormats.length === 0) ||
|
||||
return (attrs.mimeTypes.length === 0 && attrs.fileFormats.length === 0) ||
|
||||
_.contains(attrs.mimeTypes, file.type) ||
|
||||
getRegExp(attrs.fileFormats).test(file.name);
|
||||
},
|
||||
},
|
||||
// Return strings for the valid file types and extensions this
|
||||
// uploader accepts, formatted as natural language
|
||||
formatValidTypes: function() {
|
||||
var attrs = this.attributes;
|
||||
formatValidTypes: function() {
|
||||
var attrs = this.attributes;
|
||||
|
||||
if(attrs.mimeTypes.concat(attrs.fileFormats).length === 1) {
|
||||
return {
|
||||
fileTypes: this.fileTypes()[0],
|
||||
fileExtensions: '.' + this.fileTypes()[0].toLowerCase()
|
||||
if (attrs.mimeTypes.concat(attrs.fileFormats).length === 1) {
|
||||
return {
|
||||
fileTypes: this.fileTypes()[0],
|
||||
fileExtensions: '.' + this.fileTypes()[0].toLowerCase()
|
||||
};
|
||||
}
|
||||
var or = gettext('or');
|
||||
var formatTypes = function(types) {
|
||||
return _.template('<%= initial %> <%= or %> <%= last %>')({
|
||||
initial: _.initial(types).join(', '),
|
||||
or: or,
|
||||
last: _.last(types)
|
||||
});
|
||||
};
|
||||
}
|
||||
var or = gettext('or');
|
||||
var formatTypes = function(types) {
|
||||
return _.template('<%= initial %> <%= or %> <%= last %>')({
|
||||
initial: _.initial(types).join(', '),
|
||||
or: or,
|
||||
last: _.last(types)
|
||||
});
|
||||
};
|
||||
return {
|
||||
fileTypes: formatTypes(this.fileTypes()),
|
||||
fileExtensions: formatTypes(
|
||||
return {
|
||||
fileTypes: formatTypes(this.fileTypes()),
|
||||
fileExtensions: formatTypes(
|
||||
_.map(this.fileTypes(),
|
||||
function(type) {
|
||||
return '.' + type.toLowerCase();
|
||||
})
|
||||
)
|
||||
};
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
return FileUpload;
|
||||
return FileUpload;
|
||||
}); // end define()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user