diff --git a/cms/djangoapps/contentstore/rest_api/v0/urls.py b/cms/djangoapps/contentstore/rest_api/v0/urls.py index 8c9a772c34fe..9d3f872f7089 100644 --- a/cms/djangoapps/contentstore/rest_api/v0/urls.py +++ b/cms/djangoapps/contentstore/rest_api/v0/urls.py @@ -39,7 +39,7 @@ # Authoring API re_path( - fr'^file_assets/{settings.COURSE_ID_PATTERN}/$', + fr'^file_assets/{settings.COURSE_ID_PATTERN}$', assets.AssetsCreateRetrieveView.as_view(), name='cms_api_create_retrieve_assets' ), re_path( @@ -51,7 +51,7 @@ authoring_videos.VideoEncodingsDownloadView.as_view(), name='cms_api_videos_encodings' ), path( - 'videos/features/', + 'videos/features', authoring_videos.VideoFeaturesView.as_view(), name='cms_api_videos_features' ), re_path( @@ -59,7 +59,7 @@ authoring_videos.VideoImagesView.as_view(), name='cms_api_videos_images' ), re_path( - fr'^videos/uploads/{settings.COURSE_ID_PATTERN}/$', + fr'^videos/uploads/{settings.COURSE_ID_PATTERN}$', authoring_videos.VideosCreateUploadView.as_view(), name='cms_api_create_videos_upload' ), re_path( @@ -71,7 +71,7 @@ transcripts.TranscriptView.as_view(), name='cms_api_video_transcripts' ), re_path( - fr'^xblock/{settings.COURSE_ID_PATTERN}/$', + fr'^xblock/{settings.COURSE_ID_PATTERN}$', xblock.XblockCreateView.as_view(), name='cms_api_create_xblock' ), re_path( diff --git a/cms/djangoapps/contentstore/tasks.py b/cms/djangoapps/contentstore/tasks.py index 434aba419af6..69c9057966ee 100644 --- a/cms/djangoapps/contentstore/tasks.py +++ b/cms/djangoapps/contentstore/tasks.py @@ -47,9 +47,9 @@ SearchIndexingError ) from cms.djangoapps.contentstore.storage import course_import_export_storage +from cms.djangoapps.contentstore.utils import delete_course # lint-amnesty, pylint: disable=wrong-import-order from cms.djangoapps.contentstore.utils import initialize_permissions, reverse_usage_url, translation_language from cms.djangoapps.models.settings.course_metadata import CourseMetadata - from common.djangoapps.course_action_state.models import CourseRerunState from common.djangoapps.student.auth import has_course_author_access from common.djangoapps.student.roles import CourseInstructorRole, CourseStaffRole, LibraryUserRole @@ -57,6 +57,8 @@ from openedx.core.djangoapps.content.learning_sequences.api import key_supports_outlines from openedx.core.djangoapps.content_libraries import api as v2contentlib_api from openedx.core.djangoapps.course_apps.toggles import exams_ida_enabled +from openedx.core.djangoapps.discussions.config.waffle import ENABLE_NEW_STRUCTURE_DISCUSSIONS +from openedx.core.djangoapps.discussions.models import DiscussionsConfiguration, Provider from openedx.core.djangoapps.discussions.tasks import update_unit_discussion_state_from_discussion_blocks from openedx.core.djangoapps.embargo.models import CountryAccessRule, RestrictedCourse from openedx.core.lib.blockstore_api import get_collection @@ -64,21 +66,21 @@ from xmodule.contentstore.django import contentstore # lint-amnesty, pylint: disable=wrong-import-order from xmodule.course_block import CourseFields # lint-amnesty, pylint: disable=wrong-import-order from xmodule.exceptions import SerializationError # lint-amnesty, pylint: disable=wrong-import-order +from xmodule.modulestore import ModuleStoreEnum # lint-amnesty, pylint: disable=wrong-import-order from xmodule.modulestore import COURSE_ROOT, LIBRARY_ROOT # lint-amnesty, pylint: disable=wrong-import-order from xmodule.modulestore.django import modulestore # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.modulestore.exceptions import DuplicateCourseError, InvalidProctoringProvider, ItemNotFoundError # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.modulestore.xml_exporter import export_course_to_xml, export_library_to_xml # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.modulestore.xml_importer import CourseImportException, import_course_from_xml, import_library_from_xml # lint-amnesty, pylint: disable=wrong-import-order +from xmodule.modulestore.exceptions import ItemNotFoundError # lint-amnesty, pylint: disable=wrong-import-order +from xmodule.modulestore.exceptions import DuplicateCourseError, InvalidProctoringProvider +from xmodule.modulestore.xml_exporter import export_library_to_xml # lint-amnesty, pylint: disable=wrong-import-order +from xmodule.modulestore.xml_exporter import export_course_to_xml +from xmodule.modulestore.xml_importer import import_library_from_xml # lint-amnesty, pylint: disable=wrong-import-order +from xmodule.modulestore.xml_importer import CourseImportException, import_course_from_xml from .outlines import update_outline_from_modulestore from .outlines_regenerate import CourseOutlineRegenerate from .toggles import bypass_olx_failure_enabled from .utils import course_import_olx_validation_is_enabled - -from cms.djangoapps.contentstore.utils import delete_course # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.modulestore import ModuleStoreEnum # lint-amnesty, pylint: disable=wrong-import-order - User = get_user_model() LOGGER = get_task_logger(__name__) @@ -442,6 +444,35 @@ def generate_name(cls, arguments_dict): return f'Import of {key} from {filename}' +def sync_discussion_settings(course_key, user): + """ + Syncs the discussion settings for a course with the DiscussionsConfiguration model. + """ + course = modulestore().get_course(course_key) + try: + discussion_config = DiscussionsConfiguration.objects.get(context_key=course_key) + discussion_settings = course.discussions_settings + + if ( + ENABLE_NEW_STRUCTURE_DISCUSSIONS.is_enabled() + and not course.discussions_settings['provider_type'] == Provider.OPEN_EDX + ): + LOGGER.info(f"New structure is enabled, also updating {course_key} to use new provider") + course.discussions_settings['enable_graded_units'] = False + course.discussions_settings['unit_level_visibility'] = True + course.discussions_settings['provider'] = Provider.OPEN_EDX + course.discussions_settings['provider_type'] = Provider.OPEN_EDX + modulestore().update_item(course, user.id) + + discussion_config.provider_type = Provider.OPEN_EDX + discussion_config.enable_graded_units = discussion_settings['enable_graded_units'] + discussion_config.unit_level_visibility = discussion_settings['unit_level_visibility'] + discussion_config.save() + LOGGER.info(f'Course import {course.id}: DiscussionsConfiguration synced as per course') + except Exception as exc: # pylint: disable=broad-except + LOGGER.info(f'Course import {course.id}: DiscussionsConfiguration sync failed: {exc}') + + @shared_task(base=CourseImportTask, bind=True) # Note: The decorator @set_code_owner_attribute cannot be used here because the UserTaskMixin # does stack inspection and can't handle additional decorators. @@ -598,6 +629,7 @@ def read_chunk(): fake_request = RequestFactory().get('/') fake_request.user = user from .views.entrance_exam import remove_entrance_exam_milestone_reference + # TODO: Is this really ok? Seems dangerous for a live course remove_entrance_exam_milestone_reference(fake_request, courselike_key) LOGGER.info(f'{log_prefix}: entrance exam milestone content reference has been removed') @@ -683,6 +715,7 @@ def read_chunk(): from .views.entrance_exam import add_entrance_exam_milestone add_entrance_exam_milestone(course.id, entrance_exam_chapter) LOGGER.info(f'Course import {course.id}: Entrance exam imported') + sync_discussion_settings(courselike_key, user) @shared_task diff --git a/cms/djangoapps/contentstore/tests/test_libraries.py b/cms/djangoapps/contentstore/tests/test_libraries.py index bb692c016033..e7dcc3647886 100644 --- a/cms/djangoapps/contentstore/tests/test_libraries.py +++ b/cms/djangoapps/contentstore/tests/test_libraries.py @@ -96,9 +96,9 @@ def _add_simple_content_block(self): user_id=self.user.id, publish_item=False ) - def _refresh_children(self, lib_content_block, status_code_expected=200): + def _upgrade_and_sync(self, lib_content_block, status_code_expected=200): """ - Helper method: Uses the REST API to call the 'refresh_children' handler + Helper method: Uses the REST API to call the 'upgrade_and_sync' handler of a LibraryContent block """ if 'user' not in lib_content_block.runtime._services: # pylint: disable=protected-access @@ -106,9 +106,9 @@ def _refresh_children(self, lib_content_block, status_code_expected=200): lib_content_block.runtime._services['user'] = user_service # pylint: disable=protected-access handler_url = reverse_usage_url( - 'component_handler', + 'preview_handler', lib_content_block.location, - kwargs={'handler': 'refresh_children'} + kwargs={'handler': 'upgrade_and_sync'} ) response = self.client.ajax_post(handler_url) self.assertEqual(response.status_code, status_code_expected) @@ -171,7 +171,7 @@ def test_max_items(self, num_to_create, num_to_select, num_expected): lc_block = self._add_library_content_block(course, self.lib_key, other_settings={'max_count': num_to_select}) self.assertEqual(len(lc_block.children), 0) - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) # Now, we want to make sure that .children has the total # of potential # children, and that get_child_blocks() returns the actual children @@ -198,7 +198,7 @@ def test_consistent_children(self): lc_block = self._add_library_content_block(course, self.lib_key, {'max_count': 1}) lc_block_key = lc_block.location - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) def get_child_of_lc_block(block): """ @@ -231,7 +231,7 @@ def check(): check() # Refresh the children: - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) # Now re-load the block and try yet again, in case refreshing the children changed anything: check() @@ -251,7 +251,7 @@ def test_definition_shared_with_library(self): # Add a LibraryContent block to the course: lc_block = self._add_library_content_block(course, self.lib_key) - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) for child_key in lc_block.children: child = modulestore().get_item(child_key) def_id = child.definition_locator.definition_id @@ -281,7 +281,7 @@ def test_fields(self): # Add a LibraryContent block to the course: lc_block = self._add_library_content_block(course, self.lib_key) - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) course_block = modulestore().get_item(lc_block.children[0]) self.assertEqual(course_block.data, data_value) @@ -317,7 +317,7 @@ def test_block_with_children(self): # Add a LibraryContent block to the course: lc_block = self._add_library_content_block(course, self.lib_key) - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) self.assertEqual(len(lc_block.children), 1) course_vert_block = modulestore().get_item(lc_block.children[0]) self.assertEqual(len(course_vert_block.children), 1) @@ -326,10 +326,11 @@ def test_block_with_children(self): self.assertEqual(course_child_block.data, data_value) self.assertEqual(course_child_block.display_name, name_value) - def test_change_after_first_sync(self): + def test_switch_to_unknown_source_library_preserves_settings(self): """ - Check that nothing goes wrong if we (A) Set up a LibraryContent block - and use it successfully, then (B) Give it an invalid configuration. + Check that nothing goes wrong if we (A) set up a LibraryContent block + and use it successfully, then (B) give it an invalid source lib, and then + (C) try to upgrade the source library version. No children should be deleted until the configuration is fixed. """ # Add a block to the library: @@ -348,31 +349,58 @@ def test_change_after_first_sync(self): # Add a LibraryContent block to the course: lc_block = self._add_library_content_block(course, self.lib_key) - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) + good_library_id = lc_block.source_library_id + good_library_version = lc_block.source_library_version + assert good_library_id + assert good_library_version self.assertEqual(len(lc_block.children), 1) + self.assertEqual(modulestore().get_item(lc_block.children[0]).data, data_value) # Now, change the block settings to have an invalid library key: + bad_library_id = "library-v1:NOT+FOUND" resp = self._update_block( lc_block.location, - {"source_library_id": "library-v1:NOT+FOUND"}, + {"source_library_id": bad_library_id}, ) self.assertEqual(resp.status_code, 200) + lc_block = modulestore().get_item(lc_block.location) - self.assertEqual(len(lc_block.children), 1) # Children should not be deleted due to a bad setting. - html_block = modulestore().get_item(lc_block.children[0]) - self.assertEqual(html_block.data, data_value) + # Source library id should be set to the new bad one... + assert lc_block.source_library_id == bad_library_id + # ...but old source library version should be preserved... + assert lc_block.source_library_version == good_library_version + # ...and children should not be deleted due to a bad setting. + self.assertEqual(len(lc_block.children), 1) + self.assertEqual(modulestore().get_item(lc_block.children[0]).data, data_value) - def test_refreshes_children_if_libraries_change(self): - """ Tests that children are automatically refreshed if libraries list changes """ + # Attempting to force an upgrade (the user would have to do this through the API, as + # the UI wouldn't give them the option) returns a 400 and preserves the LC block's state. + self._upgrade_and_sync(lc_block, status_code_expected=400) + + # (Repeat the exact same checks) + lc_block = modulestore().get_item(lc_block.location) + # Source library id should be set to the new bad one... + assert lc_block.source_library_id == bad_library_id + # ...but old source library version should be preserved... + assert lc_block.source_library_version == good_library_version + # ...and children should not be deleted due to a bad setting. + self.assertEqual(len(lc_block.children), 1) + self.assertEqual(modulestore().get_item(lc_block.children[0]).data, data_value) + + def test_sync_if_source_library_changed(self): + """ + Tests that children are automatically synced with new lib if source library id is changed. + """ library2key = self._create_library("org2", "lib2", "Library2") library2 = modulestore().get_library(library2key) - data1, data2 = "Hello world!", "Hello other world!" + data1, data2 = "Hello world from lib 1!", "Hello other world from lib 2" BlockFactory.create( category="html", parent_location=self.library.location, user_id=self.user.id, publish_item=False, - display_name="Lib1: HTML BLock", + display_name="Lib 1: HTML BLock", data=data1, ) @@ -389,25 +417,34 @@ def test_refreshes_children_if_libraries_change(self): with modulestore().default_store(ModuleStoreEnum.Type.split): course = CourseFactory.create() - # Add a LibraryContent block to the course: + # Add a LibraryContent block to the course. lc_block = self._add_library_content_block(course, self.lib_key) - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) + + # Sanity check the initial condition. self.assertEqual(len(lc_block.children), 1) + html_block_1 = modulestore().get_item(lc_block.children[0]) + self.assertEqual(html_block_1.data, data1) - # Now, change the block settings to have an invalid library key: + # Now, switch over to new library. Don't call upgrade_and_sync, because we are + # testing that it happens automatically. resp = self._update_block( lc_block.location, {"source_library_id": str(library2key)}, ) self.assertEqual(resp.status_code, 200) - lc_block = modulestore().get_item(lc_block.location) + # Check that the course now has the new lib's new block. + lc_block = modulestore().get_item(lc_block.location) self.assertEqual(len(lc_block.children), 1) - html_block = modulestore().get_item(lc_block.children[0]) - self.assertEqual(html_block.data, data2) + html_block_2 = modulestore().get_item(lc_block.children[0]) + self.assertEqual(html_block_2.data, data2) - @patch("xmodule.library_tools.SearchEngine.get_search_engine", Mock(return_value=None, autospec=True)) - def test_refreshes_children_if_capa_type_change(self): + @patch( + 'openedx.core.djangoapps.content_libraries.tasks.SearchEngine.get_search_engine', + Mock(return_value=None, autospec=True), + ) + def test_sync_if_capa_type_changed(self): """ Tests that children are automatically refreshed if capa type field changes """ name1, name2 = "Option Problem", "Multiple Choice Problem" BlockFactory.create( @@ -433,7 +470,7 @@ def test_refreshes_children_if_capa_type_change(self): # Add a LibraryContent block to the course: lc_block = self._add_library_content_block(course, self.lib_key) - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) self.assertEqual(len(lc_block.children), 2) resp = self._update_block( @@ -458,26 +495,6 @@ def test_refreshes_children_if_capa_type_change(self): html_block = modulestore().get_item(lc_block.children[0]) self.assertEqual(html_block.display_name, name2) - def test_refresh_fails_for_unknown_library(self): - """ Tests that refresh children fails if unknown library is configured """ - # Create a course: - with modulestore().default_store(ModuleStoreEnum.Type.split): - course = CourseFactory.create() - - # Add a LibraryContent block to the course: - lc_block = self._add_library_content_block(course, self.lib_key) - lc_block = self._refresh_children(lc_block) - self.assertEqual(len(lc_block.children), 0) - - # Now, change the block settings to have an invalid library key: - resp = self._update_block( - lc_block.location, - {"source_library_id": "library-v1:NOT+FOUND"}, - ) - self.assertEqual(resp.status_code, 200) - with self.assertRaises(ValueError): - self._refresh_children(lc_block, status_code_expected=400) - def test_library_filters(self): """ Test the filters in the list libraries API @@ -742,9 +759,9 @@ def test_duplicate_across_courses(self, library_role, course_role, expected_resu (LibraryUserRole, None, False), ) @ddt.unpack - def test_refresh_library_content_permissions(self, library_role, course_role, expected_result): + def test_upgrade_and_sync_handler_content_permissions(self, library_role, course_role, expected_result): """ - Test that the LibraryContent block's 'refresh_children' handler will correctly + Test that the LibraryContent block's 'upgrade_library' handler will correctly handle permissions and allow/refuse when updating its content with the latest version of a library. We try updating from a library with (write, read, or no) access to a course with (write or no) access. @@ -767,7 +784,7 @@ def test_refresh_library_content_permissions(self, library_role, course_role, ex lc_block = self._add_library_content_block(course, self.lib_key) # We must use the CMS's module system in order to get permissions checks. self._bind_block(lc_block, user=self.non_staff_user) - lc_block = self._refresh_children(lc_block, status_code_expected=200 if expected_result else 403) + lc_block = self._upgrade_and_sync(lc_block, status_code_expected=200 if expected_result else 403) self.assertEqual(len(lc_block.children), 1 if expected_result else 0) def test_studio_user_permissions(self): @@ -860,7 +877,7 @@ def setUp(self): # Add a LibraryContent block to the course: self.lc_block = self._add_library_content_block(self.course, self.lib_key) - self.lc_block = self._refresh_children(self.lc_block) + self.lc_block = self._upgrade_and_sync(self.lc_block) self.problem_in_course = modulestore().get_item(self.lc_block.children[0]) def test_overrides(self): @@ -875,7 +892,7 @@ def test_overrides(self): # Add a second LibraryContent block to the course, with no override: lc_block2 = self._add_library_content_block(self.course, self.lib_key) - lc_block2 = self._refresh_children(lc_block2) + lc_block2 = self._upgrade_and_sync(lc_block2) # Re-load the two problem blocks - one with and one without an override: self.problem_in_course = modulestore().get_item(self.lc_block.children[0]) problem2_in_course = modulestore().get_item(lc_block2.children[0]) @@ -925,7 +942,7 @@ def test_consistent_definitions(self): self.problem.weight = 20 self.problem.display_name = "NEW" modulestore().update_item(self.problem, self.user.id) - self.lc_block = self._refresh_children(self.lc_block) + self.lc_block = self._upgrade_and_sync(self.lc_block) self.problem_in_course = modulestore().get_item(self.problem_in_course.location) self.assertEqual(self.problem.definition_locator.definition_id, definition_id) @@ -962,7 +979,7 @@ def test_persistent_overrides(self, duplicate): self.problem.data = new_data_value modulestore().update_item(self.problem, self.user.id) - self.lc_block = self._refresh_children(self.lc_block) + self.lc_block = self._upgrade_and_sync(self.lc_block) self.problem_in_course = modulestore().get_item(self.problem_in_course.location) self.assertEqual(self.problem_in_course.display_name, new_display_name) @@ -992,14 +1009,11 @@ def test_duplicated_version(self): # Refresh our reference to the library self.library = store.get_library(self.lib_key) - # Refresh our reference to the block - self.lc_block = store.get_item(self.lc_block.location) - self.problem_in_course = store.get_item(self.problem_in_course.location) - # The library has changed... self.assertEqual(len(self.library.children), 2) # But the block hasn't. + self.lc_block = store.get_item(self.lc_block.location) self.assertEqual(len(self.lc_block.children), 1) self.assertEqual(self.problem_in_course.location, self.lc_block.children[0]) self.assertEqual(self.problem_in_course.display_name, self.original_display_name) @@ -1009,8 +1023,15 @@ def test_duplicated_version(self): duplicate_block(self.course.location, self.lc_block.location, self.user) ) # The duplicate should have identical children to the original: - self.assertEqual(len(duplicate.children), 1) self.assertTrue(self.lc_block.source_library_version) self.assertEqual(self.lc_block.source_library_version, duplicate.source_library_version) + self.assertEqual(len(duplicate.children), 1) problem2_in_course = store.get_item(duplicate.children[0]) self.assertEqual(problem2_in_course.display_name, self.original_display_name) + + # Refresh our reference to the block + self.lc_block = self._upgrade_and_sync(self.lc_block) + self.problem_in_course = store.get_item(self.problem_in_course.location) + + # and the block has changed too. + self.assertEqual(len(self.lc_block.children), 2) diff --git a/cms/djangoapps/contentstore/views/component.py b/cms/djangoapps/contentstore/views/component.py index 3cd3ffff90e2..1a3c67fb370c 100644 --- a/cms/djangoapps/contentstore/views/component.py +++ b/cms/djangoapps/contentstore/views/component.py @@ -204,6 +204,9 @@ def container_handler(request, usage_key_string): # Get the status of the user's clipboard so they can paste components if they have something to paste user_clipboard = content_staging_api.get_user_clipboard_json(request.user.id, request) + library_block_types = [problem_type['component'] for problem_type in LIBRARY_BLOCK_TYPES] + is_library_xblock = xblock.location.block_type in library_block_types + return render_to_response('container.html', { 'language_code': request.LANGUAGE_CODE, 'context_course': course, # Needed only for display of menus at top of page. @@ -212,6 +215,7 @@ def container_handler(request, usage_key_string): 'xblock_locator': xblock.location, 'unit': unit, 'is_unit_page': is_unit_page, + 'is_collapsible': is_library_xblock, 'subsection': subsection, 'section': section, 'position': index, @@ -228,6 +232,7 @@ def container_handler(request, usage_key_string): 'show_unit_tags': show_unit_tags, # Status of the user's clipboard, exactly as would be returned from the "GET clipboard" REST API. 'user_clipboard': user_clipboard, + 'is_fullwidth_content': is_library_xblock, }) else: return HttpResponseBadRequest("Only supports HTML requests") diff --git a/cms/djangoapps/contentstore/views/preview.py b/cms/djangoapps/contentstore/views/preview.py index 48c323c1aa88..acab35471813 100644 --- a/cms/djangoapps/contentstore/views/preview.py +++ b/cms/djangoapps/contentstore/views/preview.py @@ -45,7 +45,7 @@ wrap_xblock_aside ) -from ..utils import get_visibility_partition_info +from ..utils import get_visibility_partition_info, StudioPermissionsService from .access import get_user_role from .session_kv_store import SessionKeyValueStore @@ -198,6 +198,7 @@ def _prepare_runtime_for_preview(request, block): deprecated_anonymous_user_id = anonymous_id_for_user(request.user, None) services = { + "studio_user_permissions": StudioPermissionsService(request.user), "i18n": XBlockI18nService, 'mako': mako_service, "settings": SettingsService(), @@ -310,6 +311,9 @@ def _studio_wrap_xblock(xblock, view, frag, context, display_name_only=False): 'is_reorderable': is_reorderable, 'can_edit': can_edit, 'can_edit_visibility': context.get('can_edit_visibility', is_course), + 'is_loading': context.get('is_loading', False), + 'is_selected': context.get('is_selected', False), + 'selectable': context.get('selectable', False), 'selected_groups_label': selected_groups_label, 'can_add': context.get('can_add', True), 'can_move': context.get('can_move', is_course), diff --git a/cms/djangoapps/contentstore/views/tests/test_block.py b/cms/djangoapps/contentstore/views/tests/test_block.py index 26b3f91a0bd7..a90187ef605d 100644 --- a/cms/djangoapps/contentstore/views/tests/test_block.py +++ b/cms/djangoapps/contentstore/views/tests/test_block.py @@ -211,7 +211,7 @@ def test_get_empty_container_fragment(self): self.assertNotRegex(html, r"wrapper-xblock[^-]+") # Verify that the header and article tags are still added - self.assertIn('
', html) + self.assertIn('
', html) self.assertIn('
', html) def test_get_container_fragment(self): @@ -233,7 +233,7 @@ def test_get_container_fragment(self): # Verify that the Studio nesting wrapper has been added self.assertIn("level-nesting", html) - self.assertIn('
', html) + self.assertIn('
', html) self.assertIn('
', html) # Verify that the Studio element wrapper has been added @@ -950,6 +950,135 @@ def test_shallow_duplicate(self): self.assertEqual(len(destination_chapter.get_children()), 0) self.assertEqual(destination_chapter.display_name, "Source Chapter") + def test_duplicate_library_content_block(self): # pylint: disable=too-many-statements + """ + Test the LibraryContentBlock's special duplication process. + """ + store = modulestore() + + # Create a library with two blocks (HTML 1 and HTML 2). + # These are the "Original" version of the blocks. + lib = LibraryFactory() + BlockFactory( + parent=lib, + category="html", + display_name="HTML 1 Title (Original)", + data="HTML 1 Content (Original)", + publish_item=False, + ) + BlockFactory( + parent=lib, + category="html", + display_name="HTML 2 Title (Original)", + data="HTML 2 Content (Original)", + publish_item=False, + ) + original_lib_version = store.get_library( + lib.location.library_key, remove_version=False, remove_branch=False, + ).location.library_key.version_guid + assert original_lib_version is not None + + # Create a library content block (lc), point it out our library, and sync it. + unit = BlockFactory( + parent_location=self.seq_usage_key, + category="vertical", + display_name="Parent Unit of LC and its Dupe", + publish_item=False, + ) + lc = BlockFactory( + parent=unit, + category="library_content", + source_library_id=str(lib.location.library_key), + display_name="LC Block", + max_count=1, + publish_item=False, + ) + lc.sync_from_library() + lc = store.get_item(lc.location) # we must reload because sync_from_library happens out-of-thread + assert lc.source_library_version == str(original_lib_version) + lc_html_1 = store.get_item(lc.children[0]) + lc_html_2 = store.get_item(lc.children[1]) + assert lc_html_1.display_name == "HTML 1 Title (Original)" + assert lc_html_2.display_name == "HTML 2 Title (Original)" + assert lc_html_1.data == "HTML 1 Content (Original)" + assert lc_html_2.data == "HTML 2 Content (Original)" + + # Override the title and data of HTML 1 under lc ("Course Override"). + # Note that title is settings-scoped and data is content-scoped. + lc_html_1.display_name = "HTML 1 Title (Course Override)" + lc_html_1.data = "HTML 1 Content (Course Override)" + store.update_item(lc_html_1, self.user.id) + + # Now, update the titles and contents of both HTML 1 and HTML 2 ("Lib Update"). + # This will yield a new version of the library (updated_lib_version). + lib_html_1 = store.get_item(lib.children[0]) + lib_html_2 = store.get_item(lib.children[1]) + assert lib_html_1.display_name == "HTML 1 Title (Original)" + assert lib_html_2.display_name == "HTML 2 Title (Original)" + lib_html_1.display_name = "HTML 1 Title (Lib Update)" + lib_html_2.display_name = "HTML 2 Title (Lib Update)" + lib_html_1.data = "HTML 1 Content (Lib Update)" + lib_html_2.data = "HTML 2 Content (Lib Update)" + store.update_item(lib_html_1, self.user.id) + store.update_item(lib_html_2, self.user.id) + updated_lib_version = store.get_library( + lib.location.library_key, remove_version=False, remove_branch=False, + ).location.library_key.version_guid + assert updated_lib_version is not None + assert updated_lib_version != original_lib_version + + # DUPLICATE lc. + # Unit should now contain both lc and dupe. + # All settings should match between lc and dupe. + dupe = store.get_item( + self._duplicate_item( + parent_usage_key=unit.location, + source_usage_key=lc.location, + display_name="Dupe LC Block", + ) + ) + lc = store.get_item(lc.location) + unit = store.get_item(unit.location) + assert unit.children == [lc.location, dupe.location] + assert len(lc.children) == len(dupe.children) == 2 + assert lc.max_count == dupe.max_count == 1 + assert lc.source_library_id == dupe.source_library_id == str(lib.location.library_key) + assert lc.source_library_version == dupe.source_library_version == str(original_lib_version) + + # The lc block's children should remain unchanged. + # That is: HTML 1 has overrides, HTML 2 has originals. + lc_html_1 = store.get_item(lc.children[0]) + assert lc_html_1.display_name == "HTML 1 Title (Course Override)" + assert lc_html_1.data == "HTML 1 Content (Course Override)" + lc_html_2 = store.get_item(lc.children[1]) + assert lc_html_2.display_name == "HTML 2 Title (Original)" + assert lc_html_2.data == "HTML 2 Content (Original)" + + # Now, the dupe's children should copy *settings* overrides over from the lc block, + # but we don't actually expect it to copy *content* overrides over from the lc block. + # (Yes, this is weird. One would expect it to copy all fields from the lc block, whether settings or content. + # But that's the existing behavior, so we're going to test for it, for now at least. + # We may change this in the future: https://github.com/openedx/edx-platform/issues/33739) + dupe_html_1 = store.get_item(dupe.children[0]) + assert dupe_html_1.display_name == "HTML 1 Title (Course Override)" # <- as you'd expect + assert dupe_html_1.data == "HTML 1 Content (Original)" # <- weird! + dupe_html_2 = store.get_item(dupe.children[1]) + assert dupe_html_2.display_name == "HTML 2 Title (Original)" # <- as you'd expect + assert dupe_html_2.data == "HTML 2 Content (Original)" # <- as you'd expect + + # Finally, upgrade the dupe's library version, and make sure it pulls in updated library block *content*, + # whilst preserving *settings overrides* (specifically, HTML 1's title override). + dupe.sync_from_library(upgrade_to_latest=True) + dupe = store.get_item(dupe.location) + assert dupe.source_library_version == str(updated_lib_version) + assert len(dupe.children) == 2 + dupe_html_1 = store.get_item(dupe.children[0]) + dupe_html_2 = store.get_item(dupe.children[1]) + assert dupe_html_1.display_name == "HTML 1 Title (Course Override)" + assert dupe_html_1.data == "HTML 1 Content (Lib Update)" + assert dupe_html_2.display_name == "HTML 2 Title (Lib Update)" + assert dupe_html_2.data == "HTML 2 Content (Lib Update)" + @ddt.ddt class TestMoveItem(ItemTest): diff --git a/cms/djangoapps/contentstore/views/tests/test_container_page.py b/cms/djangoapps/contentstore/views/tests/test_container_page.py index b78c0cce8347..1d5b52905357 100644 --- a/cms/djangoapps/contentstore/views/tests/test_container_page.py +++ b/cms/djangoapps/contentstore/views/tests/test_container_page.py @@ -167,7 +167,7 @@ def test_library_content_preview_html(self): self.assertEqual(len(lc_block.children), 0) # Refresh children to be reflected in lc_block - lc_block = self._refresh_children(lc_block) + lc_block = self._upgrade_and_sync(lc_block) self.assertEqual(len(lc_block.children), 1) self.validate_preview_html( diff --git a/cms/djangoapps/contentstore/views/tests/test_import_export.py b/cms/djangoapps/contentstore/views/tests/test_import_export.py index d01f6800c105..0744c436cf99 100644 --- a/cms/djangoapps/contentstore/views/tests/test_import_export.py +++ b/cms/djangoapps/contentstore/views/tests/test_import_export.py @@ -1112,7 +1112,7 @@ def _setup_source_course_with_library_content(self, publish=False, version=None) lc_block = self._add_library_content_block( vertical, self.lib_key, publish_item=publish, other_settings=dict(source_library_version=version) ) - self._refresh_children(lc_block) + lc_block.sync_from_library(upgrade_to_latest=True) def get_lib_content_block_children(self, block_location): """ diff --git a/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py b/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py index a563c6b61da4..f82a6f599d11 100644 --- a/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py +++ b/cms/djangoapps/contentstore/xblock_storage_handlers/view_handlers.py @@ -8,7 +8,6 @@ contentstore/views/block.py to this file, because the logic is reused in another view now. Along with it, we moved the business logic of the other views in that file, since that is related. """ - import logging from datetime import datetime from uuid import uuid4 @@ -16,7 +15,7 @@ from attrs import asdict from django.conf import settings from django.contrib.auth.decorators import login_required -from django.contrib.auth.models import (User) # lint-amnesty, pylint: disable=imported-auth-user +from django.contrib.auth.models import User # pylint: disable=imported-auth-user from django.core.exceptions import PermissionDenied from django.http import HttpResponse, HttpResponseBadRequest from django.utils.timezone import timezone @@ -57,37 +56,15 @@ from openedx.core.lib.gating import api as gating_api from openedx.core.lib.cache_utils import request_cached from openedx.core.toggles import ENTRANCE_EXAMS -from xmodule.course_block import ( - DEFAULT_START_DATE, -) # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.library_tools import ( - LibraryToolsService, -) # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.modulestore import ( - EdxJSONEncoder, - ModuleStoreEnum, -) # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.modulestore.django import ( - modulestore, -) # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.modulestore.draft_and_published import ( - DIRECT_ONLY_CATEGORIES, -) # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.modulestore.exceptions import ( - InvalidLocationError, - ItemNotFoundError, -) # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.modulestore.inheritance import ( - own_metadata, -) # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.services import ( - ConfigurationService, - SettingsService, - TeamsConfigurationService, -) # lint-amnesty, pylint: disable=wrong-import-order -from xmodule.tabs import ( - CourseTabList, -) # lint-amnesty, pylint: disable=wrong-import-order +from xmodule.course_block import DEFAULT_START_DATE +from xmodule.library_tools import LibraryToolsService +from xmodule.modulestore import EdxJSONEncoder, ModuleStoreEnum +from xmodule.modulestore.django import modulestore +from xmodule.modulestore.draft_and_published import DIRECT_ONLY_CATEGORIES +from xmodule.modulestore.exceptions import InvalidLocationError, ItemNotFoundError +from xmodule.modulestore.inheritance import own_metadata +from xmodule.services import ConfigurationService, SettingsService, TeamsConfigurationService +from xmodule.tabs import CourseTabList from ..utils import ( ancestor_has_staff_lock, @@ -181,6 +158,7 @@ def handle_xblock(request, usage_key_string=None): the public CMS API. """ if usage_key_string: + usage_key = usage_key_with_run(usage_key_string) access_check = ( @@ -221,7 +199,8 @@ def handle_xblock(request, usage_key_string=None): _delete_item(usage_key, request.user) return JsonResponse() else: # Since we have a usage_key, we are updating an existing xblock. - return modify_xblock(usage_key, request) + modified_xblock = modify_xblock(usage_key, request) + return modified_xblock elif request.method in ("PUT", "POST"): if "duplicate_source_locator" in request.json: @@ -229,7 +208,6 @@ def handle_xblock(request, usage_key_string=None): duplicate_source_usage_key = usage_key_with_run( request.json["duplicate_source_locator"] ) - source_course = duplicate_source_usage_key.course_key dest_course = parent_usage_key.course_key if not has_studio_write_access( @@ -256,6 +234,7 @@ def handle_xblock(request, usage_key_string=None): request.user, request.json.get("display_name"), ) + return JsonResponse( { "locator": str(dest_usage_key), @@ -299,7 +278,6 @@ def handle_xblock(request, usage_key_string=None): def modify_xblock(usage_key, request): request_data = request.json - print(f'In modify_xblock with data = {request_data.get("data")}, fields = {request_data.get("fields")}') return _save_xblock( request.user, get_xblock(usage_key, request.user), @@ -361,21 +339,27 @@ def load_services_for_studio(runtime, user): def _update_with_callback(xblock, user, old_metadata=None, old_content=None): """ Updates the xblock in the modulestore. - But before doing so, it calls the xblock's editor_saved callback function. + But before doing so, it calls the xblock's editor_saved callback function, + and after doing so, it calls the xblock's post_editor_saved callback function. + + TODO: Remove getattrs from this function. + See https://github.com/openedx/edx-platform/issues/33715 """ - if callable(getattr(xblock, "editor_saved", None)): - if old_metadata is None: - old_metadata = own_metadata(xblock) - if old_content is None: - old_content = xblock.get_explicitly_set_fields_by_scope(Scope.content) + if old_metadata is None: + old_metadata = own_metadata(xblock) + if old_content is None: + old_content = xblock.get_explicitly_set_fields_by_scope(Scope.content) + if hasattr(xblock, "editor_saved"): load_services_for_studio(xblock.runtime, user) xblock.editor_saved(user, old_metadata, old_content) - - # Update after the callback so any changes made in the callback will get persisted. - return modulestore().update_item(xblock, user.id) + xblock_updated = modulestore().update_item(xblock, user.id) + if hasattr(xblock_updated, "post_editor_saved"): + load_services_for_studio(xblock_updated.runtime, user) + xblock_updated.post_editor_saved(user, old_metadata, old_content) + return xblock_updated -def _save_xblock( # lint-amnesty, pylint: disable=too-many-statements +def _save_xblock( user, xblock, data=None, @@ -390,12 +374,11 @@ def _save_xblock( # lint-amnesty, pylint: disable=too-many-statements publish=None, fields=None, summary_configuration_enabled=None, -): +): # lint-amnesty, pylint: disable=too-many-statements """ Saves xblock w/ its fields. Has special processing for grader_type, publish, and nullout and Nones in metadata. nullout means to truly set the field to None whereas nones in metadata mean to unset them (so they revert to default). - """ store = modulestore() # Perform all xblock changes within a (single-versioned) transaction @@ -882,6 +865,8 @@ def _duplicate_block( # Allow an XBlock to do anything fancy it may need to when duplicated from another block. # These blocks may handle their own children or parenting if needed. Let them return booleans to # let us know if we need to handle these or not. + # TODO: Make this a proper method in the base class so we don't need getattr. + # See https://github.com/openedx/edx-platform/issues/33715 load_services_for_studio(dest_block.runtime, user) children_handled = dest_block.studio_post_duplicate(store, source_item) diff --git a/cms/envs/common.py b/cms/envs/common.py index 0cc988657868..11afd870a016 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -1994,8 +1994,6 @@ ] LIBRARY_BLOCK_TYPES = [ - # Per https://github.com/openedx/build-test-release-wg/issues/231 - # we removed the library source content block from defaults until complete. { 'component': 'library_content', 'boilerplate_name': None @@ -2783,24 +2781,13 @@ # disable indexing on date field its coming django-simple-history. SIMPLE_HISTORY_DATE_INDEX = False -# This affects the CMS API swagger docs but not the legacy swagger docs under /api-docs/. -REST_FRAMEWORK['DEFAULT_SCHEMA_CLASS'] = 'drf_spectacular.openapi.AutoSchema' - -# These fields override the spectacular settings default values. -# Any fields not included here will use the default values. -SPECTACULAR_SETTINGS = { - 'TITLE': 'CMS API', - 'DESCRIPTION': 'Experimental API to edit xblocks and course content. Danger: Do not use on running courses!', - 'VERSION': '1.0.0', - 'SERVE_INCLUDE_SCHEMA': False, - 'PREPROCESSING_HOOKS': ['cms.lib.spectacular.cms_api_filter'], # restrict spectacular to CMS API endpoints. (cms/lib/spectacular.py) -} +#### Event bus producing #### -#### Event bus producing #### def _should_send_xblock_events(settings): return settings.FEATURES['ENABLE_SEND_XBLOCK_LIFECYCLE_EVENTS_OVER_BUS'] + # .. setting_name: EVENT_BUS_PRODUCER_CONFIG # .. setting_default: all events disabled # .. setting_description: Dictionary of event_types mapped to dictionaries of topic to topic-related configuration. @@ -2859,4 +2846,11 @@ def _should_send_xblock_events(settings): 'course-authoring-xblock-lifecycle', 'enabled') derived_collection_entry('EVENT_BUS_PRODUCER_CONFIG', 'org.openedx.content_authoring.xblock.deleted.v1', 'course-authoring-xblock-lifecycle', 'enabled') + + +################### Authoring API ###################### + +# This affects the Authoring API swagger docs but not the legacy swagger docs under /api-docs/. +REST_FRAMEWORK['DEFAULT_SCHEMA_CLASS'] = 'drf_spectacular.openapi.AutoSchema' + BEAMER_PRODUCT_ID = "" diff --git a/cms/envs/devstack-experimental.yml b/cms/envs/devstack-experimental.yml index ad6126086949..8aa2c304af81 100644 --- a/cms/envs/devstack-experimental.yml +++ b/cms/envs/devstack-experimental.yml @@ -31,6 +31,7 @@ AUTH_PASSWORD_VALIDATORS: - NAME: common.djangoapps.util.password_policy_validators.MaximumLengthValidator OPTIONS: max_length: 75 +AUTHORING_API_URL: https://example.com AWS_ACCESS_KEY_ID: null AWS_QUERYSTRING_AUTH: false AWS_S3_CUSTOM_DOMAIN: SET-ME-PLEASE (ex. bucket-name.s3.amazonaws.com) diff --git a/cms/envs/devstack.py b/cms/envs/devstack.py index dd2f4522b648..275a1fd31e72 100644 --- a/cms/envs/devstack.py +++ b/cms/envs/devstack.py @@ -326,3 +326,32 @@ def should_show_debug_toolbar(request): # lint-amnesty, pylint: disable=missing # See if the developer has any local overrides. if os.path.isfile(join(dirname(abspath(__file__)), 'private.py')): from .private import * # pylint: disable=import-error,wildcard-import + +############## Authoring API drf-spectacular openapi settings ############## +# These fields override the spectacular settings default values. +# Any fields not included here will use the default values. +SPECTACULAR_SETTINGS = { + 'TITLE': 'Authoring API', + 'DESCRIPTION': f'''Experimental API to edit xblocks and course content. + \n\nDanger: Do not use on running courses! + \n\n - How to gain access: Please email the owners of this openedx service. + \n - How to use: This API uses oauth2 authentication with the + access token endpoint: `{LMS_ROOT_URL}/oauth2/access_token`. + Please see separately provided documentation. + \n - How to test: You must be logged in as course author for whatever course you want to test with. + You can use the [Swagger UI](https://{CMS_BASE}/authoring-api/ui/) to "Try out" the API with your test course. To do this, you must select the "Local" server. + \n - Public vs. Local servers: The "Public" server is where you can reach the API externally. The "Local" server is + for development with a local edx-platform version, and for use via the [Swagger UI](https://{CMS_BASE}/authoring-api/ui/). + \n - Swaggerfile: [Download link](https://{CMS_BASE}/authoring-api/schema/)''', + 'VERSION': '0.1.0', + 'SERVE_INCLUDE_SCHEMA': False, + # restrict spectacular to CMS API endpoints (cms/lib/spectacular.py): + 'PREPROCESSING_HOOKS': ['cms.lib.spectacular.cms_api_filter'], + # remove the default schema path prefix to replace it with server-specific base paths: + 'SCHEMA_PATH_PREFIX': '/api/contentstore', + 'SCHEMA_PATH_PREFIX_TRIM': '/api/contentstore', + 'SERVERS': [ + {'url': AUTHORING_API_URL, 'description': 'Public'}, + {'url': f'http://{CMS_BASE}/api/contentstore', 'description': 'Local'} + ], +} diff --git a/cms/envs/production.py b/cms/envs/production.py index 2a77d75d50fc..d0a846d3da21 100644 --- a/cms/envs/production.py +++ b/cms/envs/production.py @@ -167,6 +167,7 @@ def get_env_setting(setting): LMS_INTERNAL_ROOT_URL = ENV_TOKENS.get('LMS_INTERNAL_ROOT_URL', LMS_ROOT_URL) ENTERPRISE_API_URL = ENV_TOKENS.get('ENTERPRISE_API_URL', LMS_INTERNAL_ROOT_URL + '/enterprise/api/v1/') ENTERPRISE_CONSENT_API_URL = ENV_TOKENS.get('ENTERPRISE_CONSENT_API_URL', LMS_INTERNAL_ROOT_URL + '/consent/api/v1/') +AUTHORING_API_URL = ENV_TOKENS.get('AUTHORING_API_URL', '') # Note that FEATURES['PREVIEW_LMS_BASE'] gets read in from the environment file. OPENAI_API_KEY = ENV_TOKENS.get('OPENAI_API_KEY', '') @@ -678,4 +679,34 @@ def get_env_setting(setting): ############## Event bus producer ############## EVENT_BUS_PRODUCER_CONFIG = merge_producer_configs(EVENT_BUS_PRODUCER_CONFIG, ENV_TOKENS.get('EVENT_BUS_PRODUCER_CONFIG', {})) + +############## Authoring API drf-spectacular openapi settings ############## +# These fields override the spectacular settings default values. +# Any fields not included here will use the default values. +SPECTACULAR_SETTINGS = { + 'TITLE': 'Authoring API', + 'DESCRIPTION': f'''Experimental API to edit xblocks and course content. + \n\nDanger: Do not use on running courses! + \n\n - How to gain access: Please email the owners of this openedx service. + \n - How to use: This API uses oauth2 authentication with the + access token endpoint: `{LMS_ROOT_URL}/oauth2/access_token`. + Please see separately provided documentation. + \n - How to test: You must be logged in as course author for whatever course you want to test with. + You can use the [Swagger UI](https://{CMS_BASE}/authoring-api/ui/) to "Try out" the API with your test course. To do this, you must select the "Local" server. + \n - Public vs. Local servers: The "Public" server is where you can reach the API externally. The "Local" server is + for development with a local edx-platform version, and for use via the [Swagger UI](https://{CMS_BASE}/authoring-api/ui/). + \n - Swaggerfile: [Download link](https://{CMS_BASE}/authoring-api/schema/)''', + 'VERSION': '0.1.0', + 'SERVE_INCLUDE_SCHEMA': False, + # restrict spectacular to CMS API endpoints (cms/lib/spectacular.py): + 'PREPROCESSING_HOOKS': ['cms.lib.spectacular.cms_api_filter'], + # remove the default schema path prefix to replace it with server-specific base paths: + 'SCHEMA_PATH_PREFIX': '/api/contentstore', + 'SCHEMA_PATH_PREFIX_TRIM': '/api/contentstore', + 'SERVERS': [ + {'url': AUTHORING_API_URL, 'description': 'Public'}, + {'url': f'https://{CMS_BASE}/api/contentstore', 'description': 'Local'}, + ], +} + BEAMER_PRODUCT_ID = ENV_TOKENS.get('BEAMER_PRODUCT_ID', BEAMER_PRODUCT_ID) diff --git a/cms/lib/xblock/tagging/test.py b/cms/lib/xblock/tagging/test.py index f00d1a53c89b..173523452d54 100644 --- a/cms/lib/xblock/tagging/test.py +++ b/cms/lib/xblock/tagging/test.py @@ -148,9 +148,12 @@ def test_preview_html(self): tree = etree.parse(StringIO(problem_html), parser) main_div_nodes = tree.xpath('/html/body/div/section/div') - self.assertEqual(len(main_div_nodes), 1) + self.assertEqual(len(main_div_nodes), 2) - div_node = main_div_nodes[0] + loader_div_node = main_div_nodes[0] + self.assertIn('ui-loading', loader_div_node.get('class')) + + div_node = main_div_nodes[1] self.assertEqual(div_node.get('data-init'), 'StructuredTagsInit') self.assertEqual(div_node.get('data-runtime-class'), 'PreviewRuntime') self.assertEqual(div_node.get('data-block-type'), 'tagging_aside') diff --git a/cms/static/js/i18n/ar/djangojs.js b/cms/static/js/i18n/ar/djangojs.js index 12dc71be061a..bdf5b60d33e3 100644 --- a/cms/static/js/i18n/ar/djangojs.js +++ b/cms/static/js/i18n/ar/djangojs.js @@ -203,8 +203,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "\u064a\u0642\u062a\u0635\u0631 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0628\u0639\u0636 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0641\u064a \u0647\u0630\u0627 {blockType} \u0639\u0644\u0649 \u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0645\u062d\u062f\u062f\u0629 \u0645\u0646 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646.", "Access to this unit is restricted to: {selectedGroupsLabel}": "\u064a\u0642\u062a\u0635\u0631 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0648\u062d\u062f\u0629 \u0639\u0644\u0649: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "\u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 {blockType} \u0645\u0642\u062a\u0635\u0631 \u0639\u0644\u0649 : {selectedGroupsLabel}", - "Accomplishments": "\u0627\u0644\u0625\u0646\u062c\u0627\u0632\u0627\u062a", - "Accomplishments Pagination": "\u062a\u0631\u0642\u064a\u0645 \u0635\u0641\u062d\u0627\u062a \u0627\u0644\u0625\u0646\u062c\u0627\u0632\u0627\u062a", "Account": "\u062d\u0633\u0627\u0628", "Account Information": "\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u062d\u0633\u0627\u0628", "Account Not Activated": "\u0627\u0644\u062d\u0633\u0627\u0628 \u063a\u064a\u0631 \u0645\u0641\u0639\u0651\u0644", @@ -600,7 +598,6 @@ "Create a content group": "\u0625\u0646\u0634\u0627\u0621 \u0645\u062c\u0645\u0648\u0639\u0629 \u0645\u062d\u062a\u0648\u0649", "Create a new team if you can't find an existing team to join, or if you would like to learn with friends you know.": "\u0623\u0646\u0634\u0626 \u0641\u0631\u064a\u0642\u064b\u0627 \u062c\u062f\u064a\u062f\u064b\u0627 \u0641\u064a \u062d\u0627\u0644 \u0644\u0645 \u062a\u062c\u062f \u0641\u0631\u064a\u0642\u064b\u0627 \u0645\u0648\u062c\u0648\u062f\u064b\u0627 \u0644\u0644\u0627\u0646\u0636\u0645\u0627\u0645 \u0625\u0644\u064a\u0647 \u0623\u0648 \u0643\u0646\u062a \u062a\u0631\u063a\u0628 \u0628\u0627\u0644\u062a\u0639\u0644\u0651\u0645 \u0628\u0631\u0641\u0642\u0629 \u0623\u0635\u062f\u0642\u0627\u0621 \u062a\u0639\u0631\u0641\u0647\u0645.", "Create a report of problem responses": "\u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u062a\u0642\u0631\u064a\u0631 \u0639\u0646 \u0627\u0633\u062a\u062c\u0627\u0628\u0627\u062a \u0627\u0644\u0645\u0634\u0643\u0644\u0629", - "Create a {link_start}Mozilla Backpack{link_end} account, or log in to your existing account": "\u0623\u0646\u0634\u0626 \u062d\u0633\u0627\u0628 {link_start} Mozilla Backpack {link_end} \u0623\u0648 \u0633\u062c\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 \u062d\u0633\u0627\u0628\u0643 \u0627\u0644\u062d\u0627\u0644\u064a", "Create account using %(providerName)s.": "\u0623\u0646\u0634\u0626 \u062d\u0633\u0627\u0628\u0627\u064b \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 %(providerName)s.", "Create an Account": "\u0625\u0646\u0634\u0627\u0621 \u062d\u0633\u0627\u0628", "Create an Account.": "\u0625\u0646\u0634\u0627\u0621 \u062d\u0633\u0627\u0628.", @@ -705,7 +702,6 @@ "Duplicate": "\u0646\u0633\u062e\u0629 \u0645\u0637\u0627\u0628\u0642\u0629", "Duplicating": "\u062c\u0627\u0631\u064a \u0625\u0646\u0634\u0627\u0621 \u0646\u0633\u062e\u0629 \u0645\u0637\u0627\u0628\u0642\u0629 ", "Duration (sec)": "\u0645\u062f\u0651\u0629 \u0627\u0644\u0645\u0647\u0645\u0629 (\u0628\u0627\u0644\u062b\u0648\u0627\u0646\u064a) ", - "Earned %(created)s.": "%(created)s \u0627\u0644\u062a\u064a \u062d\u0635\u0644\u062a \u0639\u0644\u064a\u0647\u0627", "Earned Certificates": "\u0627\u0644\u0634\u0647\u0627\u062f\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u062d\u0642\u0629", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "\u0644\u0627 \u062a\u0645\u0644\u0643 EdX \u0646\u0635\u064b\u0651\u0627 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0644\u0647\u0630\u0627 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0641\u064a \u0627\u0644\u0627\u0633\u062a\u062f\u064a\u0648\u060c \u0644\u0643\u0646\u0651\u0646\u0627 \u0648\u062c\u062f\u0646\u0627 \u0646\u0635\u064b\u0651\u0627 \u0639\u0644\u0649 \u0627\u0644\u064a\u0648\u062a\u064a\u0648\u0628 \u064a\u0645\u0643\u0646\u0643 \u0627\u0633\u062a\u064a\u0631\u0627\u062f\u0647 \u0623\u0648 \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0644\u0646\u0635\u0651\u0643 \u0627\u0644\u062e\u0627\u0635 \u0628\u0635\u064a\u063a\u0629 .srt.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "\u0644\u064a\u0633 \u0644\u062f\u0649 EdX \u0646\u0635 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0644\u0647\u0630\u0627 \u0627\u0644\u0641\u064a\u062f\u064a\u0648. \u064a\u064f\u0631\u062c\u0649 \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0628\u0635\u064a\u063a\u0629 .srt.", @@ -864,7 +860,6 @@ "Financial Assistance": "\u062f\u0639\u0645 \u0645\u0627\u0644\u064a", "Financial Assistance Application": "\u0637\u0644\u0628 \u062f\u0639\u0645 \u0645\u0627\u0644\u064a", "Find": "\u0625\u064a\u062c\u0627\u062f", - "Find a course": "\u0627\u0628\u062d\u062b \u0639\u0646 \u0645\u0627\u062f\u0629", "Find and replace": "\u0625\u064a\u062c\u0627\u062f \u0648\u0627\u0633\u062a\u0628\u062f\u0627\u0644", "Find answers to the top questions asked by learners.": "\u0623\u062d\u0635\u0644 \u0639\u0644\u0649 \u0625\u062c\u0627\u0628\u0627\u062a \u0627\u0644\u0623\u0633\u0626\u0644\u0629 \u0627\u0644\u0623\u0643\u062b\u0631 \u0634\u064a\u0648\u0639\u064b\u0627 \u0628\u064a\u0646 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646.", "Find discussions": "\u0625\u064a\u062c\u0627\u062f \u0627\u0644\u0646\u0642\u0627\u0634\u0627\u062a", @@ -1579,10 +1574,7 @@ "Set up your certificate": "\u0623\u0639\u062f\u0651 \u0634\u0647\u0627\u062f\u062a\u0643", "Settings": "\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a", "Settings updated": "\u062a\u0645 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a", - "Share": "\u0634\u0627\u0631\u0643", "Share Alike": "\u0645\u0634\u0627\u0631\u0643\u0629 \u0628\u0627\u0644\u062a\u0633\u0627\u0648\u064a", - "Share on Mozilla Backpack": "\u0634\u0627\u0631\u0643 \u0639\u0644\u0649 Mozilla Backpack", - "Share your \"%(display_name)s\" award": "\u0634\u0627\u0631\u0643 \"%(display_name)s\" \u062c\u0627\u0626\u0632\u062a\u0643", "Short explanation": "\u0634\u0631\u062d \u0645\u062e\u062a\u0635\u0631", "Show": "\u0623\u0638\u0647\u0631", "Show All": "\u0639\u0631\u0636 \u0627\u0644\u0643\u0644", @@ -1672,7 +1664,6 @@ "Start of transcript. Skip to the end.": "\u0628\u062f\u0627\u064a\u0629 \u0627\u0644\u0646\u0635. \u062a\u062e\u0637 \u0625\u0644\u0649 \u0627\u0644\u0646\u0647\u0627\u064a\u0629.", "Start regenerating certificates for students in this course?": "\u0647\u0644 \u062a\u0648\u062f\u0651 \u0645\u0639\u0627\u0648\u062f\u0629 \u0627\u0644\u0628\u062f\u0621 \u0628\u0625\u0639\u062f\u0627\u062f \u0627\u0644\u0634\u0647\u0627\u062f\u0627\u062a \u0644\u0637\u0644\u0651\u0627\u0628 \u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642\u061f", "Start search": "\u0627\u0628\u062f\u0623 \u0627\u0644\u0628\u062d\u062b", - "Start working toward your next learning goal.": "\u0627\u0628\u062f\u0622 \u0627\u0644\u0639\u0645\u0644 \u0641\u064a \u0627\u062a\u062c\u0627\u0647 \u0647\u062f\u0641\u0643 \u0627\u0644\u062a\u0627\u0644\u064a.", "Started": "\u0628\u062f\u0623 \u0641\u064a \u062a\u0627\u0631\u064a\u062e", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "\u062a\u0645 \u0628\u062f\u0621 \u0645\u0647\u0645\u0651\u0629 \u0625\u0639\u0627\u062f\u0629 \u062a\u0642\u064a\u064a\u0645 \u0627\u0645\u062a\u062d\u0627\u0646 \u0627\u0644\u062f\u062e\u0648\u0644 \u0644\u0644\u0637\u0627\u0644\u0628 '{student_id}'. \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0632\u0631 \u2019\u0639\u0631\u0636 \u062d\u0627\u0644\u0629 \u0627\u0644\u0645\u0647\u0645\u0629\u2018 \u0644\u0644\u0627\u0637\u0651\u0644\u0627\u0639 \u0639\u0644\u0649 \u062d\u0627\u0644\u0629 \u0627\u0644\u0645\u0647\u0645\u0629.", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "\u062a\u0645 \u0628\u062f\u0621 \u0645\u0647\u0645\u0651\u0629 \u0625\u0639\u0627\u062f\u0629 \u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u0645\u0633\u0623\u0644\u0629 \u0631\u0642\u0645 \u2019<%- problem_id %>\u2018 \u0644\u0644\u0637\u0627\u0644\u0628 \u2019<%- student_id %>\u2018. \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0632\u0631 \u2019\u0639\u0631\u0636 \u062d\u0627\u0644\u0629 \u0627\u0644\u0645\u0647\u0645\u0629\u2018 \u0644\u0644\u0627\u0637\u0651\u0644\u0627\u0639 \u0639\u0644\u0649 \u062d\u0627\u0644\u0629 \u0627\u0644\u0645\u0647\u0645\u0629.", @@ -1960,7 +1951,6 @@ "To receive a certificate, you must also verify your identity.": "\u0644\u0627 \u0628\u062f\u0651 \u0645\u0646 \u0625\u062b\u0628\u0627\u062a \u0647\u0648\u064a\u0651\u062a\u0643 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0634\u0647\u0627\u062f\u0629.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "\u0645\u0646 \u0623\u062c\u0644 \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0646\u0642\u0627\u0637 \u0641\u064a \u0645\u0633\u0623\u0644\u0629 \u0645\u0639\u064a\u0646\u0629 \u0639\u0644\u064a\u0643 \u0627\u062e\u062a\u064a\u0627\u0631 \"\u0625\u0631\u0633\u0627\u0644\" \u0644\u0643\u0644 \u0645\u0633\u0623\u0644\u0629 \u0642\u0628\u0644 \u0627\u062d\u062a\u064a\u0627\u0631 \"\u0627\u0646\u0647 \u0627\u0644\u0627\u0645\u062a\u062d\u0627\u0646\".", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "\u0644\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0627\u0644\u0648\u0627\u062c\u0628\u0627\u062a \u0627\u0644\u0645\u0633\u0646\u062f\u0629 \u0625\u0644\u0649 \u0627\u0644\u0637\u0644\u0651\u0627\u0628 \u0641\u064a \u0627\u0644\u0634\u0639\u0628\u0629\u060c \u0623\u0648 \u0631\u0624\u064a\u0629 \u0646\u062a\u0627\u0626\u062c \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 CSV\u060c \u0642\u0645 \u0628\u062a\u0646\u0632\u064a\u0644 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0645\u0644\u0641 \u0627\u0644\u0645\u0633\u0627\u0642 \u0623\u0648 \u0646\u062a\u0627\u0626\u062c \u0627\u0644\u0634\u0639\u0628\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 \u0635\u0641\u062d\u0629 {link_start} \u062a\u0646\u0632\u064a\u0644 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a{link_end}.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0634\u0647\u0627\u062f\u062a\u0643 \u0639\u0644\u0649 Mozilla Backpack\u060c \u064a\u062c\u0628 \u0639\u0644\u064a\u0643 \u0623\u0648\u0644\u0627\u064b \u0625\u0646\u0634\u0627\u0621 \u062d\u0633\u0627\u0628 Backpack. \u0623\u0643\u0645\u0644 \u0627\u0644\u062e\u0637\u0648\u0627\u062a \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u0644\u0625\u0636\u0627\u0641\u0629 \u0634\u0647\u0627\u062f\u062a\u0643 \u0625\u0644\u0649 Backpack.", "To take a successful photo, make sure that:": "\u0644\u0627\u0644\u062a\u0642\u0627\u0637 \u0635\u0648\u0631\u0629 \u0646\u0627\u062c\u062d\u0629\u060c \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u062a\u0623\u0643\u0651\u062f \u0645\u0645\u0651\u0627 \u064a\u0644\u064a:", "To take the photo of your face, click on the camera button {icon}. If you need to try again, click 'Retake Photo'.": "\u0644\u0627\u0644\u062a\u0642\u0627\u0637 \u0635\u0648\u0631\u0629 \u0644\u0648\u062c\u0647\u0643 \u060c \u0627\u0646\u0642\u0631 \u0641\u0648\u0642 \u0632\u0631 \u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0627 {icon}. \u0625\u0630\u0627 \u0643\u0646\u062a \u0628\u062d\u0627\u062c\u0629 \u0625\u0644\u0649 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649 \u060c \u0641\u0627\u0646\u0642\u0631 \u0641\u0648\u0642 \"\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u0642\u0627\u0637 \u0627\u0644\u0635\u0648\u0631\u0629\".", "To verify your identity, you need a webcam and a government-issued photo ID.": "\u0644\u062a\u0623\u0643\u064a\u062f \u0635\u062d\u0651\u0629 \u0647\u0648\u064a\u0651\u062a\u0643\u060c \u0623\u0646\u062a \u0628\u062d\u0627\u062c\u0629 \u0644\u0643\u0627\u0645\u064a\u0631\u0627 \u0648\u0628\u0637\u0627\u0642\u0629 \u0647\u0648\u064a\u0651\u0629 \u062d\u0643\u0648\u0645\u064a\u0629 \u062a\u062d\u0645\u0644 \u0635\u0648\u0631\u0629 \u0634\u062e\u0635\u064a\u0651\u0629.", @@ -2189,7 +2179,6 @@ "What if I can't see the camera image, or if I can't see my photo do determine which side is visible?": "\u0645\u0627\u0630\u0627 \u0644\u0648 \u0644\u0645 \u0623\u062a\u0645\u0643\u0646 \u0645\u0646 \u0631\u0624\u064a\u0629 \u0635\u0648\u0631\u0629 \u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0627\u060c \u0623\u0648 \u0625\u0630\u0627 \u0644\u0645 \u0623\u062a\u0645\u0643\u0646 \u0645\u0646 \u0631\u0624\u064a\u0629 \u0635\u0648\u0631\u062a\u064a \u0644\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u062c\u0627\u0646\u0628 \u0627\u0644\u0645\u0631\u0626\u064a\u061f", "What if I have difficulty holding my ID in position relative to the camera?": "\u0645\u0627\u0630\u0627 \u0644\u0648 \u0648\u0627\u062c\u0647\u062a \u0635\u0639\u0648\u0628\u0629 \u0641\u064a \u062a\u062b\u0628\u064a\u062a \u0628\u0637\u0627\u0642\u0629 \u0647\u0648\u064a\u062a\u064a \u0641\u064a \u0627\u0644\u0645\u0648\u0636\u0639 \u0627\u0644\u0645\u0646\u0627\u0633\u0628 \u0644\u0644\u0643\u0627\u0645\u064a\u0631\u0627\u061f", "What if I have difficulty holding my head in position relative to the camera?": "\u0645\u0627\u0630\u0627 \u0644\u0648 \u0648\u0627\u062c\u0647\u062a \u0635\u0639\u0648\u0628\u0629 \u0641\u064a \u062a\u062b\u0628\u064a\u062a \u0631\u0623\u0633\u064a \u0641\u064a \u0627\u0644\u0645\u0648\u0636\u0639 \u0627\u0644\u0645\u0646\u0627\u0633\u0628 \u0644\u0644\u0643\u0627\u0645\u064a\u0631\u0627\u061f", - "What's Your Next Accomplishment?": "\u0645\u0627\u0647\u0648 \u0625\u0646\u062c\u0627\u0632\u0643 \u0627\u0644\u0642\u0627\u062f\u0645\u061f", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "\u0639\u0646\u062f\u0645\u0627 \u06cc\u0642\u062f\u0645 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u0648\u0646 \u0625\u062c\u0627\u0628\u0629 \u0639\u0644\u06cc \u0646\u0645\u0648\u0630\u062c \u062a\u0642\u06cc\u06cc\u0645\u060c \u0641\u0633\u06cc\u0638\u0647\u0631 \u0645\u0627 \u0625\u0630\u0627 \u06a9\u0627\u0646 \u0627\u0644\u062c\u0648\u0627\u0628 \u0635\u062d\u06cc\u062d\u0627\u064b \u0623\u0645 \u0644\u0627\u060c \u0648\u064a\u0633\u062a\u0644\u0645\u0648\u0646 \u0627\u0644\u0646\u062a\u06cc\u062c\u0629 \u0641\u0648\u0631\u064b\u0627.", "When your face is in position, use the Take Photo button {icon} below to take your photo.": "\u0639\u0646\u062f\u0645\u0627 \u064a\u0643\u0648\u0646 \u0648\u062c\u0647\u0643 \u0641\u064a \u0645\u0648\u0636\u0639\u0647 \u060c \u0627\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0632\u0631 \"\u0627\u0644\u062a\u0642\u0627\u0637 \u0635\u0648\u0631\u0629\" {icon} \u0623\u062f\u0646\u0627\u0647 \u0644\u0627\u0644\u062a\u0642\u0627\u0637 \u0635\u0648\u0631\u062a\u0643.", "Which timed transcript would you like to use?": "\u0645\u0627 \u0647\u0648 \u0627\u0644\u0646\u0635 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0627\u0644\u0630\u064a \u062a\u0631\u063a\u0628 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647\u061f", @@ -2456,7 +2445,6 @@ "{categoryText} in {parentDisplayname}": "{categoryText} \u0636\u0645\u0646 {parentDisplayname}", "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} of {maxCharacters}": "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} \u0645\u0646 {maxCharacters}", "{display_name} Settings": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a {display_name}", - "{download_link_start}Download this image (right-click or option-click, save as){link_end} and then {upload_link_start}upload{link_end} it to your backpack.": "{download_link_start} \u0642\u0645 \u0628\u062a\u0646\u0632\u064a\u0644 \u0647\u0630\u0647 \u0627\u0644\u0635\u0648\u0631\u0629 (\u0627\u0646\u0642\u0631 \u0628\u0632\u0631 \u0627\u0644\u0641\u0623\u0631\u0629 \u0627\u0644\u0623\u064a\u0645\u0646 \u0623\u0648 \u0627\u0646\u0642\u0631 \u0641\u0648\u0642 \u0632\u0631 \u0627\u0644\u062e\u064a\u0627\u0631 \u060c \u062b\u0645 \u0627\u062d\u0641\u0638\u0647\u0627 \u0628\u0627\u0633\u0645) {link_end} \u062b\u0645 {upload_link_start} \u062d\u0645\u0651\u0644\u0647\u0627 {link_end} \u0625\u0644\u0649 backpack.", "{earned}/{possible} point (graded)": [ "{earned}/{possible} \u062f\u0631\u062c\u0629 (\u0645\u0642\u064a\u0645\u0629)", "{earned}/{possible} \u062f\u0631\u062c\u0629 (\u0645\u0642\u064a\u0645\u0629)", diff --git a/cms/static/js/i18n/ca/djangojs.js b/cms/static/js/i18n/ca/djangojs.js index 7f2f3453e4a3..de2ebca740ba 100644 --- a/cms/static/js/i18n/ca/djangojs.js +++ b/cms/static/js/i18n/ca/djangojs.js @@ -343,7 +343,6 @@ "Due:": "Venciment:", "Duplicate": "Duplicar", "Duration (sec)": "Durada (segons)", - "Earned %(created)s.": "S'ha guanyat %(created)s.", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "EdX no t\u00e9 una transcripci\u00f3 temporitzada per a aquest v\u00eddeo a Studio, per\u00f2 hem trobat una transcripci\u00f3 a YouTube. Podeu importar la transcripci\u00f3 de YouTube o carregar el vostre propi fitxer de transcripci\u00f3 .srt.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "EdX no t\u00e9 una transcripci\u00f3 temporitzada per a aquest v\u00eddeo. Carregueu un fitxer .srt.", "EdX has a timed transcript for this video. If you want to edit this transcript, you can download, edit, and re-upload the existing transcript. If you want to replace this transcript, upload a new .srt transcript file.": "EdX t\u00e9 una transcripci\u00f3 temporitzada per a aquest v\u00eddeo. Si voleu editar aquesta transcripci\u00f3, podeu baixar, editar i tornar a carregar la transcripci\u00f3 existent. Si voleu reempla\u00e7ar aquesta transcripci\u00f3, carregueu un fitxer de transcripci\u00f3 .srt nou.", @@ -405,7 +404,6 @@ "Filter": "Filtre", "Filter and sort topics": "Filtrar i ordenar temes", "Financial Assistance Application": "Sol\u00b7licitud d'Assist\u00e8ncia Financera", - "Find a course": "Trobeu un curs", "Find discussions": "Trobi debats", "First time here?": "La primera vegada aqu\u00ed?", "Follow or unfollow posts": "Seguiu o deixeu de publicar publicacions", @@ -774,9 +772,6 @@ "Set up your certificate": "Set up your certificate", "Settings": "Configuraci\u00f3", "Settings updated": "Configuraci\u00f3 actualitzada", - "Share": "Compartir", - "Share on Mozilla Backpack": "Comparteix-ho a la motxilla de Mozilla", - "Share your \"%(display_name)s\" award": "Compartiu el vostre premi \"%(display_name)s\"", "Show": "Mostrar", "Show All": "Mostrar tots", "Show Deprecated Settings": "Mostra la configuraci\u00f3 obsoleta", @@ -812,7 +807,6 @@ "Staff and Learners": "Personal i aprenents", "Start Date": "Data d'inici", "Start System Check": "Comen\u00e7a la verificaci\u00f3 del sistema", - "Start working toward your next learning goal.": "Comenceu a treballar per al vostre proper objectiu d'aprenentatge.", "Started": "Ha comen\u00e7at", "Starts": "Inici", "Starts: %(start_date)s": "Inicia: %(start_date)s", @@ -952,7 +946,6 @@ "To receive a certificate, you must also verify your identity.": "Per rebre un certificat, tamb\u00e9 heu de verificar la vostra identitat.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "Per rebre cr\u00e8dit per problemes, heu de seleccionar \"Enviar\" per a cada problema abans de seleccionar \"Finalitza el meu examen\".", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "Per revisar les assignacions de cohort dels alumnes o veure els resultats de la c\u00e0rrega d'un fitxer CSV, descarregueu la informaci\u00f3 del perfil del curs o els resultats de la cohort a la p\u00e0gina {link_start} Descarrega Dades {link_end}.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "Per compartir el certificat a Mozilla Backpack, primer heu de tenir un compte de Backpack. Completeu els passos seg\u00fcents per afegir el vostre certificat a Motxilla.", "To take a successful photo, make sure that:": "Per fer una foto reeixida, assegureu-vos que:", "To verify your identity, you need a webcam and a government-issued photo ID.": "Per verificar la vostra identitat, necessiteu una c\u00e0mera web i un identificador de fotografia em\u00e8s pel govern.", "Today": "Avui", @@ -1058,7 +1051,6 @@ "What You Need for Verification": "El que necessiteu per a la verificaci\u00f3", "What does %(platformName)s do with this photo?": "Qu\u00e8 fa amb %(platformName)s amb aquesta foto?", "What does this mean?": "Qu\u00e8 vol dir aix\u00f2?", - "What's Your Next Accomplishment?": "Quin \u00e9s el vostre seguiment?", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "Quan els aprenents presenten una resposta a una avaluaci\u00f3, immediatament veuen si la resposta \u00e9s correcta o incorrecta, i la puntuaci\u00f3 rebuda.", "Which timed transcript would you like to use?": "Quina transcripci\u00f3 temporitzada us agradaria utilitzar?", "Why activate?": "Per qu\u00e8 activar?", diff --git a/cms/static/js/i18n/ca@valencia/djangojs.js b/cms/static/js/i18n/ca@valencia/djangojs.js index 7d8b7695a73d..9daaef009f54 100644 --- a/cms/static/js/i18n/ca@valencia/djangojs.js +++ b/cms/static/js/i18n/ca@valencia/djangojs.js @@ -343,7 +343,6 @@ "Due:": "Venciment:", "Duplicate": "Duplicar", "Duration (sec)": "Durada (segons)", - "Earned %(created)s.": "S'ha guanyat %(created)s.", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "EdX no t\u00e9 una transcripci\u00f3 temporitzada per a aquest v\u00eddeo a Studio, per\u00f2 hem trobat una transcripci\u00f3 a YouTube. Podeu importar la transcripci\u00f3 de YouTube o carregar el vostre propi fitxer de transcripci\u00f3 .srt.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "EdX no t\u00e9 una transcripci\u00f3 temporitzada per a aquest v\u00eddeo. Carregueu un fitxer .srt.", "EdX has a timed transcript for this video. If you want to edit this transcript, you can download, edit, and re-upload the existing transcript. If you want to replace this transcript, upload a new .srt transcript file.": "EdX t\u00e9 una transcripci\u00f3 temporitzada per a aquest v\u00eddeo. Si voleu editar aquesta transcripci\u00f3, podeu baixar, editar i tornar a carregar la transcripci\u00f3 existent. Si voleu reempla\u00e7ar aquesta transcripci\u00f3, carregueu un fitxer de transcripci\u00f3 .srt nou.", @@ -405,7 +404,6 @@ "Filter": "Filtre", "Filter and sort topics": "Filtrar i ordenar temes", "Financial Assistance Application": "Sol\u00b7licitud d'Assist\u00e8ncia Financera", - "Find a course": "Trobeu un curs", "Find discussions": "Trobi debats", "First time here?": "La primera vegada aqu\u00ed?", "Follow or unfollow posts": "Seguiu o deixeu de publicar publicacions", @@ -774,9 +772,6 @@ "Set up your certificate": "Set up your certificate", "Settings": "Configuraci\u00f3", "Settings updated": "Configuraci\u00f3 actualitzada", - "Share": "Compartir", - "Share on Mozilla Backpack": "Comparteix-ho a la motxilla de Mozilla", - "Share your \"%(display_name)s\" award": "Compartiu el vostre premi \"%(display_name)s\"", "Show": "Mostrar", "Show All": "Mostrar tots", "Show Deprecated Settings": "Mostra la configuraci\u00f3 obsoleta", @@ -812,7 +807,6 @@ "Staff and Learners": "Personal i aprenents", "Start Date": "Data d'inici", "Start System Check": "Comen\u00e7a la verificaci\u00f3 del sistema", - "Start working toward your next learning goal.": "Comenceu a treballar per al vostre proper objectiu d'aprenentatge.", "Started": "Ha comen\u00e7at", "Starts": "Inici", "Starts: %(start_date)s": "Inicia: %(start_date)s", @@ -952,7 +946,6 @@ "To receive a certificate, you must also verify your identity.": "Per rebre un certificat, tamb\u00e9 heu de verificar la vostra identitat.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "Per rebre cr\u00e8dit per problemes, heu de seleccionar \"Enviar\" per a cada problema abans de seleccionar \"Finalitza el meu examen\".", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "Per revisar les assignacions de cohort dels alumnes o veure els resultats de la c\u00e0rrega d'un fitxer CSV, descarregueu la informaci\u00f3 del perfil del curs o els resultats de la cohort a la p\u00e0gina {link_start} Descarrega Dades {link_end}.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "Per compartir el certificat a Mozilla Backpack, primer heu de tenir un compte de Backpack. Completeu els passos seg\u00fcents per afegir el vostre certificat a Motxilla.", "To take a successful photo, make sure that:": "Per fer una foto reeixida, assegureu-vos que:", "To verify your identity, you need a webcam and a government-issued photo ID.": "Per verificar la vostra identitat, necessiteu una c\u00e0mera web i un identificador de fotografia em\u00e8s pel govern.", "Today": "Avui", @@ -1058,7 +1051,6 @@ "What You Need for Verification": "El que necessiteu per a la verificaci\u00f3", "What does %(platformName)s do with this photo?": "Qu\u00e8 fa amb %(platformName)s amb aquesta foto?", "What does this mean?": "Qu\u00e8 vol dir aix\u00f2?", - "What's Your Next Accomplishment?": "Quin \u00e9s el vostre seguiment?", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "Quan els aprenents presenten una resposta a una avaluaci\u00f3, immediatament veuen si la resposta \u00e9s correcta o incorrecta, i la puntuaci\u00f3 rebuda.", "Which timed transcript would you like to use?": "Quina transcripci\u00f3 temporitzada us agradaria utilitzar?", "Why activate?": "Per qu\u00e8 activar?", diff --git a/cms/static/js/i18n/de-de/djangojs.js b/cms/static/js/i18n/de-de/djangojs.js index 24637b410460..9a6c5964f5f4 100644 --- a/cms/static/js/i18n/de-de/djangojs.js +++ b/cms/static/js/i18n/de-de/djangojs.js @@ -161,8 +161,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "Der Zugang zu manchen Inhalten im {blockType} ist nur bestimmten Teilnehmergruppen erlaubt.", "Access to this unit is restricted to: {selectedGroupsLabel}": "Der Zugriff auf diese Lerneinheit ist beschr\u00e4nkt auf: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "Der Zugang zu {blockType}\u00a0ist nur den folgenden Gruppen erlaubt: {selectedGroupsLabel}", - "Accomplishments": "Leistungen", - "Accomplishments Pagination": "Seitennummerierung der Leistungen", "Account": "Benutzerkonto", "Account Information": "Kontoinformationen", "Account Not Activated": "Konto nicht aktiviert", @@ -558,7 +556,6 @@ "Create a content group": "Erstelle eine Inhaltsgruppe", "Create a new team if you can't find an existing team to join, or if you would like to learn with friends you know.": "Erstelle ein neues Team, wenn Du keinem bestehenden Team beitreten kannst, oder wenn Du mit Freunden lernen m\u00f6chtest, die Du kennst.", "Create a report of problem responses": "Erstellen Sie einen Bericht \u00fcber Probleml\u00f6sungen", - "Create a {link_start}Mozilla Backpack{link_end} account, or log in to your existing account": "Erstellen Sie ein {link_start}Mozilla Backpack{link_end} Konto, oder melden Sie sich bei Ihrem bestehenden Konto an.", "Create account using %(providerName)s.": "Erstelle ein Konto mit %(providerName)s.", "Create an Account": "Einen Account erstellen", "Create an Account.": "Einen Account erstellen.", @@ -666,7 +663,6 @@ "Duplicate": "Dupliziere", "Duplicating": "Duplizieren", "Duration (sec)": "Dauer (Sek.)", - "Earned %(created)s.": "Hat %(created)s verdient.", "Earned Certificates": "Erhaltene Zertifikate", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "EdX hat f\u00fcr dieses Video in Studio kein zeitgesteuertes Transkript, aber in YouTube wurde ein Transkript gefunden. Sie k\u00f6nnen das YouTube-Transkript importieren oder Ihre eigene .srt-Transkriptdatei hochladen.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "EdX hat kein zeitbehaftetes Transkript f\u00fcr dieses Video. Bitte lade eine .srt-Datei hoch.", @@ -825,7 +821,6 @@ "Financial Assistance": "Finanzielle Unterst\u00fctzung", "Financial Assistance Application": "Antrag auf finanzielle Unterst\u00fctzung", "Find": "Finde", - "Find a course": "Finde einen Kurs", "Find and replace": "Finde und ersetze", "Find answers to the top questions asked by learners.": "Die h\u00e4ufigsten Fragen und Antworten anderer Lernender. ", "Find discussions": "Diskussion finden", @@ -1533,10 +1528,7 @@ "Set up your certificate": "Richten Sie sich Ihr Zertifikat ein", "Settings": "Einstellungen", "Settings updated": "Einstellungen aktualisiert", - "Share": "Teilen", "Share Alike": "Share Alike", - "Share on Mozilla Backpack": "Auf Mozilla Backpack teilen", - "Share your \"%(display_name)s\" award": "Teilen Sie Ihre \"%(display_name)s\" Auszeichnung", "Short explanation": "kurze Erkl\u00e4rung", "Show": "Einblenden", "Show All": "Alles anzeigen", @@ -1617,7 +1609,6 @@ "Start of transcript. Skip to the end.": "Beginn des Transkriptes, zum Ende springen.", "Start regenerating certificates for students in this course?": "M\u00f6chten Sie Zertifikate f\u00fcr Teilnehmer dieses Kurses Regenerieren?", "Start search": "Starte suche", - "Start working toward your next learning goal.": "Beginnen Sie mit der Arbeit an Ihrem n\u00e4chsten Lernziel.", "Started": "Gestartet", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "Aufgabe zur Neubewertung der Aufnahmepr\u00fcfung des Teilnehmers '{student_id}' gestartet. Klicken Sie auf die Schaltfl\u00e4che \"Aufgabenstatus anzeigen\", um den Status der Aufgabe anzuzeigen.", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "Neubewertung des Problems '<%- problem_id %>' f\u00fcr den Teilnehmer '<%- student_id %>' gestartet. Klicken Sie auf die Schaltfl\u00e4che \"Aufgabenstatus anzeigen\", um den Status der Aufgabe anzuzeigen.", @@ -1905,7 +1896,6 @@ "To receive a certificate, you must also verify your identity.": "Um ein Zertifikat zu erhalten, m\u00fcssen Sie auch Ihre Identit\u00e4t verifizieren.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "Um Credits f\u00fcr Probleme zu erhalten, m\u00fcssen Sie f\u00fcr jedes Problem \"Senden\" ausw\u00e4hlen, bevor Sie \"Meine Pr\u00fcfung beenden\" w\u00e4hlen.", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "Um die Kohortenzuordnungen der Lernenden zu \u00fcberpr\u00fcfen oder die Ergebnisse des Hochladens einer CSV-Datei zu sehen, laden Sie Kursprofilinformationen oder Kohortenergebnisse auf der Seite {link_start}Daten-Download{link_end} herunter.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "Um Ihr Zertifikat auf Mozilla Backpack zu teilen, m\u00fcssen Sie zuerst ein Backpack-Konto haben. F\u00fchren Sie die folgenden Schritte aus, um Ihr Zertifikat zum Backpack hinzuzuf\u00fcgen.", "To take a successful photo, make sure that:": "Um ein erfolgreiches Bild zu machen, stell sicher dass:", "To take the photo of your face, click on the camera button {icon}. If you need to try again, click 'Retake Photo'.": "Um ein Foto von Ihrem Gesicht zu machen, klicken Sie auf den Kamera Button {icon}. Wenn Sie ein neues Foto aufnehmen m\u00f6chten, klicken Sie auf 'Foto erneut aufnehmen'.", "To verify your identity, you need a webcam and a government-issued photo ID.": "Um Ihre Identit\u00e4t zu verifizieren, ben\u00f6tigen Sie eine Webcam und einen staatlich ausgestellten Lichtbildausweis.", @@ -2130,7 +2120,6 @@ "What if I have difficulty holding my ID in position relative to the camera?": "Was, wenn ich Schwierigkeiten habe, meinen Ausweis in der richtigen Position zur Kamera zu halten?", "What if I have difficulty holding my head in position relative to the camera?": "Was, wenn ich Schwierigkeiten habe, meinen Kopf in der richtigen Position zur Kamera zu halten?", "What was the total combined income, during the last 12 months, of all members of your family? ": "Wie hoch war das gemeinsame Gesamteinkommen aller Mitglieder Ihrer Familie in den letzten 12 Monaten? ", - "What's Your Next Accomplishment?": "Was ist Ihr n\u00e4chster Erfolg?", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "Nutzer sehen sofort nach einreichen ihrer Antworten, ob diese richtig oder falsch sind und welche Punkte sie erhalten.", "When your face is in position, use the Take Photo button {icon} below to take your photo.": "Wenn Ihr Gesicht in Position ist, klicken Sie auf die Schaltfl\u00e4che des Ausl\u00f6sers {icon} unten, um ein Foto aufzunehmen.", "Which timed transcript would you like to use?": "Welches zeitbehaftete Transkript m\u00f6chtest du benutzen?", @@ -2394,7 +2383,6 @@ "{categoryText} in {parentDisplayname}": "{categoryText} in {parentDisplayname}", "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} of {maxCharacters}": "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} von {maxCharacters}", "{display_name} Settings": "{display_name} Einstellungen", - "{download_link_start}Download this image (right-click or option-click, save as){link_end} and then {upload_link_start}upload{link_end} it to your backpack.": "{download_link_start}Laden Sie dieses Bild herunter (Rechtsklick oder Optionsklick, Speichern unter){link_end} und dann {upload_link_start}laden Sie es hoch{link_end} in Ihren Backpack.", "{earned}/{possible} point (graded)": [ "{earned}/{possible} Punkt (benotet)", "{earned}/{possible} Punkte (benotet)" diff --git a/cms/static/js/i18n/eo/djangojs.js b/cms/static/js/i18n/eo/djangojs.js index 8b51840c3712..3a995b184a46 100644 --- a/cms/static/js/i18n/eo/djangojs.js +++ b/cms/static/js/i18n/eo/djangojs.js @@ -1103,6 +1103,7 @@ "Making Visible to Students": "M\u00e4k\u00efng V\u00efs\u00ef\u00dfl\u00e9 t\u00f6 St\u00fcd\u00e9nts \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#", "Manage": "M\u00e4n\u00e4g\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5#", "Manage Learners": "M\u00e4n\u00e4g\u00e9 L\u00e9\u00e4rn\u00e9rs \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1#", + "Manage Tags": "M\u00e4n\u00e4g\u00e9 T\u00e4gs \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f #", "Manage my subscription": "M\u00e4n\u00e4g\u00e9 m\u00fd s\u00fc\u00dfs\u00e7r\u00efpt\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#", "Manual": "M\u00e4n\u00fc\u00e4l \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5#", "March": "marto", diff --git a/cms/static/js/i18n/es-419/djangojs.js b/cms/static/js/i18n/es-419/djangojs.js index cb094093eb11..549e97e0b542 100644 --- a/cms/static/js/i18n/es-419/djangojs.js +++ b/cms/static/js/i18n/es-419/djangojs.js @@ -248,8 +248,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "El acceso a algunos contenidos en este {blockType} est\u00e1 restringido a grupos espec\u00edficos de estudiantes.", "Access to this unit is restricted to: {selectedGroupsLabel}": "El acceso a esta unidad est\u00e1 restringida a: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "El acceso a este {blockType} est\u00e1 restringido a: {selectedGroupsLabel}", - "Accomplishments": "Logros", - "Accomplishments Pagination": "Paginaci\u00f3n de Logros", "According to our records, you are not enrolled in any courses included in your {programName} program subscription. Enroll in a course from the {i_start}Program Details{i_end} page.": "Seg\u00fan nuestros registros, no est\u00e1s inscrito en ning\u00fan curso incluido en la suscripci\u00f3n al programa {programName}. Inscr\u00edbete en un curso por medio de la p\u00e1gina {i_start}Detalles del programa{i_end}.", "Account": "Cuenta", "Account Information": "Informaci\u00f3n de la cuenta", @@ -659,7 +657,6 @@ "Create a content group": "Crear contenido de grupo", "Create a new team if you can't find an existing team to join, or if you would like to learn with friends you know.": "Crea un nuevo equipo si no puedes encontrar uno existente para unirte o si deseas aprender con personas que ya conoces.", "Create a report of problem responses": "Crea un reporte de respuestas de problemas", - "Create a {link_start}Mozilla Backpack{link_end} account, or log in to your existing account": "Crear una {link_start}cuenta en Mozilla Backpack{link_end} o iniciar sesi\u00f3n en una cuenta existente.", "Create account using %(providerName)s.": "Crear una cuenta usando %(providerName)s", "Create an Account": "Crear una cuenta", "Create an Account.": "Crear una cuenta.", @@ -772,7 +769,6 @@ "Duplicate": "Duplicar", "Duplicating": "Duplicando", "Duration (sec)": "Duraci\u00f3n (segundos)", - "Earned %(created)s.": "Obtenido %(created)s.", "Earned Certificates": "Certificados Ganados", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "No se encontr\u00f3 una transcripci\u00f3n de este video en Studio, pero hemos encontrado una en Youtube. Puede importar la transcripci\u00f3n de Youtube o subir su propio archivo .srt.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "No se encontr\u00f3 una transcripci\u00f3n para este video. Por favor suba un archivo de transcripci\u00f3n .srt", @@ -944,7 +940,6 @@ "Financial Assistance": "Asistencia financiera", "Financial Assistance Application": "Solicitud de asistencia financiera", "Find": "Buscar", - "Find a course": "Busca un curso", "Find and replace": "Encontrar y reemplazar", "Find answers to the top questions asked by learners.": "Encuentra respuestas a las consultas m\u00e1s comunes de nuestros estudiantes.", "Find discussions": "Encontrar discusiones", @@ -1235,6 +1230,7 @@ "Making Visible to Students": "Haciendo visible a los estudiantes", "Manage": "Administrar", "Manage Learners": "Manejar Estudiantes", + "Manage Tags": "Administrar etiquetas", "Manage my subscription": "Gestionar mi suscripci\u00f3n", "Manual": "Manual", "March": "Marzo", @@ -1717,10 +1713,7 @@ "Set up your certificate": "Configurar su certificado", "Settings": "Configuraci\u00f3n", "Settings updated": "Configuraciones actualizadas", - "Share": "Compartir", "Share Alike": "Compartir por igual", - "Share on Mozilla Backpack": "Compartir en Mozilla Backpack", - "Share your \"%(display_name)s\" award": "Comparte tu insignia de \"%(display_name)s\" ", "Short explanation": "explicaci\u00f3n breve", "Show": "Mostrar", "Show All": "Mostrar todo", @@ -1806,7 +1799,6 @@ "Start of transcript. Skip to the end.": "Inicio de la transcripci\u00f3n. Saltar al final.", "Start regenerating certificates for students in this course?": "\u00bfIniciar regeneraci\u00f3n de certificados para estudiantes de este curso?", "Start search": "Iniciar b\u00fasqueda", - "Start working toward your next learning goal.": "Empieza a trabajar hacia tu pr\u00f3xima meta de aprendizaje.", "Start {trialLength}-day free trial": "Iniciar prueba gratuita de {trialLength} d\u00edas", "Started": "Inici\u00f3", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "Iniciada tarea de recalificaci\u00f3n de examen de ingreso para estudiante '{student_id}'. Haz clic en el bot\u00f3n 'Mostrar estado de tareas' para ver el estado de la tarea.", @@ -2124,7 +2116,6 @@ "To receive a certificate, you must also verify your identity.": "Para recibir un certificado, tambi\u00e9n debe verificar su identidad.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "Para recibir cr\u00e9dito por problemas, debe seleccionar \"Enviar\" para cada problema antes de seleccionar \"Finalizar mi examen\".", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "Para revisar asiginaciones de cohortes de los estudiantes o ver los resultados del archivo CVS que est\u00e1 subiendo, descargue la informaci\u00f3n del perfil del curso o los resultados del cohorte en la p\u00e1gina {link_start}Data Download{link_end}.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "Para compartir tu certificado en Mozilla Backpack, debes tener una cuenta de Backpack primero. Completa los siguientes pasos para agregar tu certificado a Backpack.", "To take a successful photo, make sure that:": "Para tomar la foto correctamente, aseg\u00farese de: ", "To take the photo of your face, click on the camera button {icon}. If you need to try again, click 'Retake Photo'.": "Para tomar la foto de su cara, haga clic en el bot\u00f3n de la c\u00e1mara {icon}. Si necesita volver a intentarlo, haga clic en 'Retomar foto'.", "To verify your identity, you need a webcam and a government-issued photo ID.": "Para verificar su identidad, necesitar\u00e1 una c\u00e1mara web, y un documento de identificaci\u00f3n oficial con foto.", @@ -2362,7 +2353,6 @@ "What if I have difficulty holding my ID in position relative to the camera?": "\u00bfQu\u00e9 sucede si tengo dificultades para mantener mi identificaci\u00f3n en posici\u00f3n con respecto a la c\u00e1mara?", "What if I have difficulty holding my head in position relative to the camera?": "\u00bfQu\u00e9 sucede si tengo dificultades para mantener la cabeza en posici\u00f3n con respecto a la c\u00e1mara?", "What was the total combined income, during the last 12 months, of all members of your family? ": "\u00bfCu\u00e1l fue el ingreso total de todos los miembros de tu familia durante los \u00faltimos 12 meses? ", - "What's Your Next Accomplishment?": "\u00bfQu\u00e9 ser\u00e1 tu pr\u00f3ximo logro?", "What's in my clipboard?": "\u00bfQu\u00e9 hay en mi portapapeles?", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "Cuando un estudiante ya haya enviado su respuesta en una evaluaci\u00f3n, en seguida ver\u00e1 si esa respuesta es correcta o incorrecta y la puntuaci\u00f3n correspondiente.", "When your face is in position, use the Take Photo button {icon} below to take your photo.": "Cuando su cara est\u00e9 en posici\u00f3n, use el bot\u00f3n Tomar foto {icon} a continuaci\u00f3n para tomar su foto.", @@ -2663,7 +2653,6 @@ "{categoryText} in {parentDisplayname}": "{categoryText} en {parentDisplayname}", "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} of {maxCharacters}": "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} de {maxCharacters}", "{display_name} Settings": "Ajustes de configuraci\u00f3n para {display_name} ", - "{download_link_start}Download this image (right-click or option-click, save as){link_end} and then {upload_link_start}upload{link_end} it to your backpack.": "{download_link_start}descargar esta imagen (clic derecho, guardar como){link_end} y luego {upload_link_start} carguela {link_end} a su bolsa en Mozilla Backpack.", "{earned}/{possible} point (graded)": [ "{earned}/{possible} punto (calificado)", "{earned}/{possible} puntos (calificado)" diff --git a/cms/static/js/i18n/eu-es/djangojs.js b/cms/static/js/i18n/eu-es/djangojs.js index cc6b5d6487c2..1ad6e260549b 100644 --- a/cms/static/js/i18n/eu-es/djangojs.js +++ b/cms/static/js/i18n/eu-es/djangojs.js @@ -86,8 +86,6 @@ "About Me": "Niri buruz", "About You": "Zuri buruz", "About me": "Niri buruz", - "Accomplishments": "Lorpenak", - "Accomplishments Pagination": "Lorpenen orrikatzea", "Account": "Kontua", "Account Information": "Kontuaren informazioa", "Account Not Activated": "Aktibatu gabeko kontua", @@ -528,7 +526,6 @@ "Final Grade Received": "Azken kalifikazioa jaso da", "Financial Assistance Application": "Finantza-laguntzarako eskaria", "Find": "Bilatu", - "Find a course": "Bilatu ikastaroa", "Find and replace": "Bilatu eta ordezkatu", "Find discussions": "Bilatu eztabaidak", "Find next": "Bilatu hurrengoa", @@ -986,7 +983,6 @@ "Set up your certificate": "Konfiguratu ziurtagiria", "Settings": "Ezarpenak", "Settings updated": "Ezarpenak eguneratuta", - "Share": "Partekatu", "Share Alike": "Share Alike", "Short explanation": "Azalpen laburra", "Show": "Erakutsi", @@ -1309,7 +1305,6 @@ "Web:": "Web:", "Webcam": "Web-kamera", "What does this mean?": "Zer esan nahi du honek?", - "What's Your Next Accomplishment?": "Zein izango da hurrengo lorpena?", "Whole words": "Hitz osoak", "Why does %(platformName)s need my photo?": "Zergatik behar du %(platformName)s plataformak nire argazkia?", "Width": "Zabala", diff --git a/cms/static/js/i18n/fa-ir/djangojs.js b/cms/static/js/i18n/fa-ir/djangojs.js index ef7a945126da..6714c1afaec4 100644 --- a/cms/static/js/i18n/fa-ir/djangojs.js +++ b/cms/static/js/i18n/fa-ir/djangojs.js @@ -248,8 +248,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 {blockType} \u0645\u062d\u062f\u0648\u062f \u0628\u0647 \u06af\u0631\u0648\u0647 \u0648\u06cc\u0698\u0647\u200c\u0627\u06cc \u0627\u0632 \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u06af\u0627\u0646 \u0627\u0633\u062a .", "Access to this unit is restricted to: {selectedGroupsLabel}": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0648\u0627\u062d\u062f \u0645\u062d\u062f\u0648\u062f \u0627\u0633\u062a \u0628\u0647: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 {blockType} \u0645\u062d\u062f\u0648\u062f \u0627\u0633\u062a \u0628\u0647: {selectedGroupsLabel}", - "Accomplishments": "\u062f\u0633\u062a\u0627\u0648\u0631\u062f\u0647\u0627", - "Accomplishments Pagination": "\u062f\u0633\u062a\u0627\u0648\u0631\u062f\u0647\u0627\u06cc \u0635\u0641\u062d\u0647\u200c\u0628\u0646\u062f\u06cc", "According to our records, you are not enrolled in any courses included in your {programName} program subscription. Enroll in a course from the {i_start}Program Details{i_end} page.": "\u0637\u0628\u0642 \u0633\u0648\u0627\u0628\u0642 \u0645\u0627\u060c \u0634\u0645\u0627 \u062f\u0631 \u0647\u06cc\u0686 \u062f\u0648\u0631\u0647 \u0627\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 {programName} \u062e\u0648\u062f \u06af\u0646\u062c\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u062b\u0628\u062a \u0646\u0627\u0645 \u0646\u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f. \u062f\u0631 \u06cc\u06a9 \u062f\u0648\u0631\u0647 \u0627\u0632 \u0635\u0641\u062d\u0647 {i_start}\u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u0647{i_end} \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0646\u06cc\u062f.", "Account": "\u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc", "Account Information": "\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc", @@ -659,7 +657,6 @@ "Create a content group": "\u0633\u0627\u062e\u062a \u06af\u0631\u0648\u0647 \u0645\u062d\u062a\u0648\u0627", "Create a new team if you can't find an existing team to join, or if you would like to learn with friends you know.": "\u0627\u06af\u0631 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u06cc\u0645\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0639\u0636\u0648\u06cc\u062a \u0628\u06cc\u0627\u0628\u06cc\u062f \u06cc\u0627 \u0645\u0627\u06cc\u0644\u06cc\u062f \u0628\u0627 \u062f\u0648\u0633\u062a\u0627\u0646\u06cc \u06a9\u0647 \u0627\u0632 \u0642\u0628\u0644 \u0645\u06cc\u200c\u0634\u0646\u0627\u0633\u06cc\u062f \u0622\u0645\u0648\u0632\u0634 \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c \u062a\u06cc\u0645 \u062c\u062f\u06cc\u062f\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f.", "Create a report of problem responses": "\u06af\u0632\u0627\u0631\u0634\u06cc \u0627\u0632 \u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc \u0645\u0633\u0627\u0644\u0647 \u0628\u0633\u0627\u0632\u06cc\u062f", - "Create a {link_start}Mozilla Backpack{link_end} account, or log in to your existing account": "\u06cc\u06a9 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062f\u0631 {link_start} Mozilla Backpack {link_end} \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0628\u0647 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0645\u0648\u062c\u0648\u062f \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f", "Create account using %(providerName)s.": "\u0627\u06cc\u062c\u0627\u062f \u062d\u0633\u0627\u0628\u200c\u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 %(providerName)s.", "Create an Account": "\u06cc\u06a9 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f", "Create an Account.": "\u06cc\u06a9 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f.", @@ -771,7 +768,6 @@ "Duplicate": "\u062a\u06a9\u0631\u0627\u0631\u06cc", "Duplicating": "\u062f\u0631 \u062d\u0627\u0644 \u062a\u06a9\u062b\u06cc\u0631", "Duration (sec)": "\u0645\u062f\u062a \u0632\u0645\u0627\u0646 (\u062b\u0627\u0646\u06cc\u0647)", - "Earned %(created)s.": "%(created)s \u06a9\u0633\u0628 \u0634\u062f\u0647.", "Earned Certificates": "\u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0633\u0628\u200c\u0634\u062f\u0647", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "EdX \u0632\u06cc\u0631\u0646\u0648\u06cc\u0633 \u0632\u0645\u0627\u0646\u200c\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648 \u0631\u0627 \u062f\u0631 \u0647\u0646\u0631\u06a9\u062f\u0647 \u0646\u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u0631\u0648\u0646\u0648\u0634\u062a\u06cc \u0627\u0632 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u0648\u062a\u06cc\u0648\u0628 \u06cc\u0627\u0641\u062a\u0647\u200c\u0627\u06cc\u0645. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0648\u0646\u0648\u0634\u062a \u06cc\u0648\u062a\u06cc\u0648\u0628 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u067e\u0631\u0648\u0646\u062f\u06c0 \u0631\u0648\u0646\u0648\u0634\u062a .srt \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "Edx \u0647\u06cc\u0686 \u0645\u062a\u0646 \u0632\u06cc\u0631\u0646\u0648\u06cc\u0633\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648 \u0646\u062f\u0627\u0631\u062f. \u0644\u0637\u0641\u0627 \u067e\u0631\u0648\u0646\u062f\u0647 srt \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f.", @@ -943,7 +939,6 @@ "Financial Assistance": "\u06a9\u0645\u06a9 \u0645\u0627\u0644\u06cc", "Financial Assistance Application": "\u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u06a9\u0645\u06a9\u06cc \u0645\u0627\u0644\u06cc", "Find": "\u0628\u06cc\u0627\u0628", - "Find a course": "\u06cc\u06a9 \u062f\u0648\u0631\u0647 \u0622\u0645\u0648\u0632\u0634\u06cc \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f", "Find and replace": "\u0628\u06cc\u0627\u0628 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646", "Find answers to the top questions asked by learners.": "\u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u067e\u0631\u0633\u0634\u200c\u0647\u0627\u06cc \u0628\u0631\u062a\u0631 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0628\u06cc\u0627\u0628\u06cc\u062f.", "Find discussions": "\u06cc\u0627\u0641\u062a\u0646 \u06af\u0641\u062a\u06af\u0648", @@ -1715,10 +1710,7 @@ "Set up your certificate": "\u062a\u0646\u0638\u06cc\u0645 \u06af\u0648\u0627\u0647\u06cc \u0634\u062e\u0635\u06cc", "Settings": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a", "Settings updated": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0648\u0632\u0622\u0645\u062f", - "Share": "\u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc", "Share Alike": "\u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc Alike", - "Share on Mozilla Backpack": "\u0627\u0634\u062a\u0631\u0627\u06a9 \u062f\u0631 Mozilla Backpack", - "Share your \"%(display_name)s\" award": "\u062c\u0627\u06cc\u0632\u0647\u200c\u0627\u062a %(display_name)s \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631", "Short explanation": "\u062a\u0648\u0636\u06cc\u062d \u06a9\u0648\u062a\u0627\u0647", "Show": "\u0646\u0645\u0627\u06cc\u0634", "Show All": "\u0646\u0645\u0627\u06cc\u0634 \u0647\u0645\u0647", @@ -1804,7 +1796,6 @@ "Start of transcript. Skip to the end.": "\u0645\u062a\u0646 \u0631\u0627 \u0628\u06cc\u0627\u063a\u0627\u0632\u06cc\u062f. \u0628\u067e\u0631 \u0628\u0631\u0648 \u0622\u062e\u0631\u0634.", "Start regenerating certificates for students in this course?": "\u0622\u06cc\u0627 \u0628\u0627\u0632\u062a\u0648\u0644\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u06af\u0627\u0646 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0631\u0627 \u0622\u063a\u0627\u0632 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u061f", "Start search": " \u0622\u063a\u0627\u0632 \u062c\u0633\u062a\u062c\u0648", - "Start working toward your next learning goal.": "\u06a9\u0627\u0631 \u0631\u0648\u06cc \u0647\u062f\u0641 \u0628\u0639\u062f\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc\u200c \u062e\u0648\u062f \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f.", "Start {trialLength}-day free trial": "\u0646\u0633\u062e\u0647 \u0631\u0627\u06cc\u06af\u0627\u0646 \u0631\u0648\u0632 {trialLength} \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f", "Started": "\u0634\u0631\u0648\u0639 \u0634\u062f\u0647", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "\u062f\u0631 \u062d\u0627\u0644 \u062a\u06a9\u0645\u06cc\u0644 \u0646\u0645\u0631\u0647\u200c\u062f\u0647\u06cc \u0645\u062c\u062f\u062f \u0622\u0632\u0645\u0648\u0646 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u0647\"{student_id}\"\u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u06c0 \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0631\u060c \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u06c0 \"\u0646\u0645\u0627\u06cc\u0634 \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0631\" \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.", @@ -2121,7 +2112,6 @@ "To receive a certificate, you must also verify your identity.": "\u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06af\u0648\u0627\u0647\u06cc\u060c \u0628\u0627\u06cc\u062f \u0647\u0648\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0646\u06cc\u0632 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "\u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0624\u0627\u0644\u0627\u062a\u060c \u067e\u06cc\u0634 \u0627\u0632 \u0627\u0646\u062a\u062e\u0627\u0628 \"\u067e\u0627\u06cc\u0627\u0646 \u0622\u0632\u0645\u0648\u0646 \u0645\u0646\" \u0628\u0627\u06cc\u062f \"\u0627\u0631\u0633\u0627\u0644\" \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0633\u0624\u0627\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "\u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u062a\u06a9\u0627\u0644\u06cc\u0641 \u06af\u0631\u0648\u0647\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u0647 \u06cc\u0627 \u062f\u06cc\u062f\u0646 \u0646\u062a\u0627\u06cc\u062c \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 CSV \u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u067e\u0631\u0648\u0646\u062f\u06c0 \u062f\u0648\u0631\u0647 \u06cc\u0627 \u0646\u062a\u0627\u06cc\u062c \u06af\u0631\u0648\u0647 \u0631\u0627 \u062f\u0631 \u0635\u0641\u062d\u06c0 {link_start} \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 {link_end} \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "\u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0648\u0627\u0647\u06cc \u062e\u0648\u062f \u062f\u0631 Mozilla Backpack \u060c \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc Backpack \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0645\u0631\u0627\u062d\u0644 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u062a\u0627 \u06af\u0648\u0627\u0647\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 Backpack \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.", "To take a successful photo, make sure that:": "\u0628\u0631\u0627\u06cc \u0639\u06a9\u0627\u0633\u06cc \u0645\u0648\u0641\u0642\u060c \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647:", "To take the photo of your face, click on the camera button {icon}. If you need to try again, click 'Retake Photo'.": "\u0628\u0631\u0627\u06cc \u062a\u0635\u0648\u06cc\u0631\u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0632 \u0686\u0647\u0631\u06c0 \u062e\u0648\u062f\u060c \u0631\u0648\u06cc \u062f\u06a9\u0645\u06c0 \u062f\u0648\u0631\u0628\u06cc\u0646 {icon} \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u06a9\u0631\u0627\u0631\u060c \u0628\u0631 \u0631\u0648\u06cc \"\u062a\u0635\u0648\u06cc\u0631\u0628\u0631\u062f\u0627\u0631\u06cc \u0645\u062c\u062f\u062f\" \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.", "To verify your identity, you need a webcam and a government-issued photo ID.": "\u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0647\u0648\u06cc\u062a \u062e\u0648\u062f\u060c \u0628\u0647 \u062f\u0648\u0631\u0628\u06cc\u0646 \u0631\u0627\u06cc\u0627\u0646\u0647 \u0648 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0627\u0631\u062a \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f.", @@ -2358,7 +2348,6 @@ "What if I have difficulty holding my ID in position relative to the camera?": "\u0627\u06af\u0631 \u062f\u0631 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0646 \u06a9\u0627\u0631\u062a \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u062e\u0648\u062f \u0646\u0633\u0628\u062a \u0628\u0647 \u0645\u0648\u0642\u0639\u06cc\u062a \u062f\u0648\u0631\u0628\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0645\u060c \u0686\u0647 \u06a9\u0646\u0645\u061f", "What if I have difficulty holding my head in position relative to the camera?": "\u0627\u06af\u0631 \u062f\u0631 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0646 \u0633\u0631\u0645 \u062f\u0631 \u0645\u0648\u0642\u0639\u06cc\u062a \u0645\u0637\u0644\u0648\u0628 \u0646\u0633\u0628\u062a \u0628\u0647 \u062f\u0648\u0631\u0628\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0645\u060c \u0686\u0647 \u06a9\u0646\u0645\u061f", "What was the total combined income, during the last 12 months, of all members of your family? ": "\u062f\u0631 \u06a9\u0644\u060c \u062f\u0631\u0622\u0645\u062f 12 \u0645\u0627\u0647 \u06af\u0630\u0634\u062a\u0647 \u0647\u0645\u06c0 \u0627\u0639\u0636\u0627\u06cc \u062e\u0627\u0646\u0648\u0627\u062f\u0647 \u0634\u0645\u0627 \u0686\u0642\u062f\u0631 \u0628\u0648\u062f\u0647 \u0627\u0633\u062a\u061f", - "What's Your Next Accomplishment?": "\u062f\u0633\u062a\u0627\u0648\u0631\u062f \u0628\u0639\u062f\u06cc \u0634\u0645\u0627 \u0686\u06cc\u0633\u062a\u061f", "What's in my clipboard?": "\u062f\u0631 \u06a9\u0644\u06cc\u067e \u0628\u0648\u0631\u062f \u0645\u0646 \u0686\u06cc\u0633\u062a\u061f", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "\u0648\u0642\u062a\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u06af\u0627\u0646 \u0628\u0647 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u067e\u0627\u0633\u062e \u0645\u06cc\u200c\u062f\u0647\u0646\u062f\u060c \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0645\u06cc\u200c\u0628\u06cc\u0646\u0646\u062f \u06a9\u0647 \u062c\u0648\u0627\u0628 \u062f\u0631\u0633\u062a \u0627\u0633\u062a \u06cc\u0627 \u0646\u0627\u062f\u0631\u0633\u062a\u060c \u0648 \u0646\u0645\u0631\u06c0 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0631\u0627 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0646\u062f.", "When your face is in position, use the Take Photo button {icon} below to take your photo.": "\u0647\u0631 \u0632\u0645\u0627\u0646 \u062a\u0635\u0648\u06cc\u0631 \u0634\u0645\u0627 \u062f\u0631 \u0645\u0648\u0642\u0639\u06cc\u062a \u0645\u0637\u0644\u0648\u0628 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u060c \u0627\u0632 \u062f\u06a9\u0645\u06c0 \u062a\u0635\u0648\u06cc\u0631\u0645 \u0631\u0627 \u0628\u0631\u062f\u0627\u0631 {icon} \u062f\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.", @@ -2659,7 +2648,6 @@ "{categoryText} in {parentDisplayname}": "{categoryText} \u062f\u0631 {parentDisplayname}", "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} of {maxCharacters}": "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} \u0627\u0632 {maxCharacters}", "{display_name} Settings": " \u062a\u0646\u0638\u06cc\u0645\u0627\u062a {display_name} ", - "{download_link_start}Download this image (right-click or option-click, save as){link_end} and then {upload_link_start}upload{link_end} it to your backpack.": "{download_link_start} \u0627\u06cc\u0646 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f ( \u06a9\u0644\u06cc\u06a9 \u0631\u0627\u0633\u062a \u06cc\u0627 \u062f\u0648\u06a9\u0644\u06cc\u06a9\u060c \u0630\u062e\u06cc\u0631\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646) {link_end}\u00a0 \u0648 \u0633\u067e\u0633 {upload_link_start}\u062f\u0631 \u0628\u0633\u062a\u06c0 \u062e\u0648\u062f {link_end} \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f.", "{earned}/{possible} point (graded)": [ "{earned}/{possible} \u0646\u0645\u0631\u0647 (\u0628\u0627\u0631\u0645\u200c\u0628\u0646\u062f\u06cc\u200c\u0634\u062f\u0647)", "{earned}/{possible} \u0646\u0645\u0631\u0647 (\u0628\u0627\u0631\u0645\u200c\u0628\u0646\u062f\u06cc\u200c\u0634\u062f\u0647)" diff --git a/cms/static/js/i18n/fa/djangojs.js b/cms/static/js/i18n/fa/djangojs.js index ef7a945126da..6714c1afaec4 100644 --- a/cms/static/js/i18n/fa/djangojs.js +++ b/cms/static/js/i18n/fa/djangojs.js @@ -248,8 +248,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 {blockType} \u0645\u062d\u062f\u0648\u062f \u0628\u0647 \u06af\u0631\u0648\u0647 \u0648\u06cc\u0698\u0647\u200c\u0627\u06cc \u0627\u0632 \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u06af\u0627\u0646 \u0627\u0633\u062a .", "Access to this unit is restricted to: {selectedGroupsLabel}": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0648\u0627\u062d\u062f \u0645\u062d\u062f\u0648\u062f \u0627\u0633\u062a \u0628\u0647: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0627\u06cc\u0646 {blockType} \u0645\u062d\u062f\u0648\u062f \u0627\u0633\u062a \u0628\u0647: {selectedGroupsLabel}", - "Accomplishments": "\u062f\u0633\u062a\u0627\u0648\u0631\u062f\u0647\u0627", - "Accomplishments Pagination": "\u062f\u0633\u062a\u0627\u0648\u0631\u062f\u0647\u0627\u06cc \u0635\u0641\u062d\u0647\u200c\u0628\u0646\u062f\u06cc", "According to our records, you are not enrolled in any courses included in your {programName} program subscription. Enroll in a course from the {i_start}Program Details{i_end} page.": "\u0637\u0628\u0642 \u0633\u0648\u0627\u0628\u0642 \u0645\u0627\u060c \u0634\u0645\u0627 \u062f\u0631 \u0647\u06cc\u0686 \u062f\u0648\u0631\u0647 \u0627\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 {programName} \u062e\u0648\u062f \u06af\u0646\u062c\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u062b\u0628\u062a \u0646\u0627\u0645 \u0646\u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f. \u062f\u0631 \u06cc\u06a9 \u062f\u0648\u0631\u0647 \u0627\u0632 \u0635\u0641\u062d\u0647 {i_start}\u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u0647{i_end} \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0646\u06cc\u062f.", "Account": "\u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc", "Account Information": "\u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc", @@ -659,7 +657,6 @@ "Create a content group": "\u0633\u0627\u062e\u062a \u06af\u0631\u0648\u0647 \u0645\u062d\u062a\u0648\u0627", "Create a new team if you can't find an existing team to join, or if you would like to learn with friends you know.": "\u0627\u06af\u0631 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u06cc\u0645\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0639\u0636\u0648\u06cc\u062a \u0628\u06cc\u0627\u0628\u06cc\u062f \u06cc\u0627 \u0645\u0627\u06cc\u0644\u06cc\u062f \u0628\u0627 \u062f\u0648\u0633\u062a\u0627\u0646\u06cc \u06a9\u0647 \u0627\u0632 \u0642\u0628\u0644 \u0645\u06cc\u200c\u0634\u0646\u0627\u0633\u06cc\u062f \u0622\u0645\u0648\u0632\u0634 \u0628\u0628\u06cc\u0646\u06cc\u062f\u060c \u062a\u06cc\u0645 \u062c\u062f\u06cc\u062f\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f.", "Create a report of problem responses": "\u06af\u0632\u0627\u0631\u0634\u06cc \u0627\u0632 \u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc \u0645\u0633\u0627\u0644\u0647 \u0628\u0633\u0627\u0632\u06cc\u062f", - "Create a {link_start}Mozilla Backpack{link_end} account, or log in to your existing account": "\u06cc\u06a9 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062f\u0631 {link_start} Mozilla Backpack {link_end} \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u0628\u0647 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0645\u0648\u062c\u0648\u062f \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u0634\u0648\u06cc\u062f", "Create account using %(providerName)s.": "\u0627\u06cc\u062c\u0627\u062f \u062d\u0633\u0627\u0628\u200c\u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 %(providerName)s.", "Create an Account": "\u06cc\u06a9 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f", "Create an Account.": "\u06cc\u06a9 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f.", @@ -771,7 +768,6 @@ "Duplicate": "\u062a\u06a9\u0631\u0627\u0631\u06cc", "Duplicating": "\u062f\u0631 \u062d\u0627\u0644 \u062a\u06a9\u062b\u06cc\u0631", "Duration (sec)": "\u0645\u062f\u062a \u0632\u0645\u0627\u0646 (\u062b\u0627\u0646\u06cc\u0647)", - "Earned %(created)s.": "%(created)s \u06a9\u0633\u0628 \u0634\u062f\u0647.", "Earned Certificates": "\u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0633\u0628\u200c\u0634\u062f\u0647", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "EdX \u0632\u06cc\u0631\u0646\u0648\u06cc\u0633 \u0632\u0645\u0627\u0646\u200c\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648 \u0631\u0627 \u062f\u0631 \u0647\u0646\u0631\u06a9\u062f\u0647 \u0646\u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u0631\u0648\u0646\u0648\u0634\u062a\u06cc \u0627\u0632 \u0622\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u0648\u062a\u06cc\u0648\u0628 \u06cc\u0627\u0641\u062a\u0647\u200c\u0627\u06cc\u0645. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0648\u0646\u0648\u0634\u062a \u06cc\u0648\u062a\u06cc\u0648\u0628 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u06cc\u0627 \u067e\u0631\u0648\u0646\u062f\u06c0 \u0631\u0648\u0646\u0648\u0634\u062a .srt \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "Edx \u0647\u06cc\u0686 \u0645\u062a\u0646 \u0632\u06cc\u0631\u0646\u0648\u06cc\u0633\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0648\u06cc\u062f\u06cc\u0648 \u0646\u062f\u0627\u0631\u062f. \u0644\u0637\u0641\u0627 \u067e\u0631\u0648\u0646\u062f\u0647 srt \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f.", @@ -943,7 +939,6 @@ "Financial Assistance": "\u06a9\u0645\u06a9 \u0645\u0627\u0644\u06cc", "Financial Assistance Application": "\u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631 \u06a9\u0645\u06a9\u06cc \u0645\u0627\u0644\u06cc", "Find": "\u0628\u06cc\u0627\u0628", - "Find a course": "\u06cc\u06a9 \u062f\u0648\u0631\u0647 \u0622\u0645\u0648\u0632\u0634\u06cc \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f", "Find and replace": "\u0628\u06cc\u0627\u0628 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646", "Find answers to the top questions asked by learners.": "\u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u067e\u0631\u0633\u0634\u200c\u0647\u0627\u06cc \u0628\u0631\u062a\u0631 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u0628\u06cc\u0627\u0628\u06cc\u062f.", "Find discussions": "\u06cc\u0627\u0641\u062a\u0646 \u06af\u0641\u062a\u06af\u0648", @@ -1715,10 +1710,7 @@ "Set up your certificate": "\u062a\u0646\u0638\u06cc\u0645 \u06af\u0648\u0627\u0647\u06cc \u0634\u062e\u0635\u06cc", "Settings": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a", "Settings updated": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0648\u0632\u0622\u0645\u062f", - "Share": "\u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc", "Share Alike": "\u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u06af\u0630\u0627\u0631\u06cc Alike", - "Share on Mozilla Backpack": "\u0627\u0634\u062a\u0631\u0627\u06a9 \u062f\u0631 Mozilla Backpack", - "Share your \"%(display_name)s\" award": "\u062c\u0627\u06cc\u0632\u0647\u200c\u0627\u062a %(display_name)s \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631", "Short explanation": "\u062a\u0648\u0636\u06cc\u062d \u06a9\u0648\u062a\u0627\u0647", "Show": "\u0646\u0645\u0627\u06cc\u0634", "Show All": "\u0646\u0645\u0627\u06cc\u0634 \u0647\u0645\u0647", @@ -1804,7 +1796,6 @@ "Start of transcript. Skip to the end.": "\u0645\u062a\u0646 \u0631\u0627 \u0628\u06cc\u0627\u063a\u0627\u0632\u06cc\u062f. \u0628\u067e\u0631 \u0628\u0631\u0648 \u0622\u062e\u0631\u0634.", "Start regenerating certificates for students in this course?": "\u0622\u06cc\u0627 \u0628\u0627\u0632\u062a\u0648\u0644\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u06af\u0627\u0646 \u0627\u06cc\u0646 \u062f\u0648\u0631\u0647 \u0631\u0627 \u0622\u063a\u0627\u0632 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u061f", "Start search": " \u0622\u063a\u0627\u0632 \u062c\u0633\u062a\u062c\u0648", - "Start working toward your next learning goal.": "\u06a9\u0627\u0631 \u0631\u0648\u06cc \u0647\u062f\u0641 \u0628\u0639\u062f\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc\u200c \u062e\u0648\u062f \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f.", "Start {trialLength}-day free trial": "\u0646\u0633\u062e\u0647 \u0631\u0627\u06cc\u06af\u0627\u0646 \u0631\u0648\u0632 {trialLength} \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f", "Started": "\u0634\u0631\u0648\u0639 \u0634\u062f\u0647", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "\u062f\u0631 \u062d\u0627\u0644 \u062a\u06a9\u0645\u06cc\u0644 \u0646\u0645\u0631\u0647\u200c\u062f\u0647\u06cc \u0645\u062c\u062f\u062f \u0622\u0632\u0645\u0648\u0646 \u0648\u0631\u0648\u062f\u06cc \u0628\u0631\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u0647\"{student_id}\"\u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u06c0 \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0631\u060c \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u06c0 \"\u0646\u0645\u0627\u06cc\u0634 \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0631\" \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.", @@ -2121,7 +2112,6 @@ "To receive a certificate, you must also verify your identity.": "\u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06af\u0648\u0627\u0647\u06cc\u060c \u0628\u0627\u06cc\u062f \u0647\u0648\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0646\u06cc\u0632 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "\u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0624\u0627\u0644\u0627\u062a\u060c \u067e\u06cc\u0634 \u0627\u0632 \u0627\u0646\u062a\u062e\u0627\u0628 \"\u067e\u0627\u06cc\u0627\u0646 \u0622\u0632\u0645\u0648\u0646 \u0645\u0646\" \u0628\u0627\u06cc\u062f \"\u0627\u0631\u0633\u0627\u0644\" \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0633\u0624\u0627\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f.", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "\u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u062a\u06a9\u0627\u0644\u06cc\u0641 \u06af\u0631\u0648\u0647\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u0647 \u06cc\u0627 \u062f\u06cc\u062f\u0646 \u0646\u062a\u0627\u06cc\u062c \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 CSV \u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u067e\u0631\u0648\u0646\u062f\u06c0 \u062f\u0648\u0631\u0647 \u06cc\u0627 \u0646\u062a\u0627\u06cc\u062c \u06af\u0631\u0648\u0647 \u0631\u0627 \u062f\u0631 \u0635\u0641\u062d\u06c0 {link_start} \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627 {link_end} \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "\u0628\u0631\u0627\u06cc \u0627\u0634\u062a\u0631\u0627\u06a9 \u06af\u0648\u0627\u0647\u06cc \u062e\u0648\u062f \u062f\u0631 Mozilla Backpack \u060c \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc Backpack \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0645\u0631\u0627\u062d\u0644 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u062a\u0627 \u06af\u0648\u0627\u0647\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 Backpack \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.", "To take a successful photo, make sure that:": "\u0628\u0631\u0627\u06cc \u0639\u06a9\u0627\u0633\u06cc \u0645\u0648\u0641\u0642\u060c \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647:", "To take the photo of your face, click on the camera button {icon}. If you need to try again, click 'Retake Photo'.": "\u0628\u0631\u0627\u06cc \u062a\u0635\u0648\u06cc\u0631\u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0632 \u0686\u0647\u0631\u06c0 \u062e\u0648\u062f\u060c \u0631\u0648\u06cc \u062f\u06a9\u0645\u06c0 \u062f\u0648\u0631\u0628\u06cc\u0646 {icon} \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u06a9\u0631\u0627\u0631\u060c \u0628\u0631 \u0631\u0648\u06cc \"\u062a\u0635\u0648\u06cc\u0631\u0628\u0631\u062f\u0627\u0631\u06cc \u0645\u062c\u062f\u062f\" \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.", "To verify your identity, you need a webcam and a government-issued photo ID.": "\u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0647\u0648\u06cc\u062a \u062e\u0648\u062f\u060c \u0628\u0647 \u062f\u0648\u0631\u0628\u06cc\u0646 \u0631\u0627\u06cc\u0627\u0646\u0647 \u0648 \u062a\u0635\u0648\u06cc\u0631 \u06a9\u0627\u0631\u062a \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f.", @@ -2358,7 +2348,6 @@ "What if I have difficulty holding my ID in position relative to the camera?": "\u0627\u06af\u0631 \u062f\u0631 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0646 \u06a9\u0627\u0631\u062a \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u062e\u0648\u062f \u0646\u0633\u0628\u062a \u0628\u0647 \u0645\u0648\u0642\u0639\u06cc\u062a \u062f\u0648\u0631\u0628\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0645\u060c \u0686\u0647 \u06a9\u0646\u0645\u061f", "What if I have difficulty holding my head in position relative to the camera?": "\u0627\u06af\u0631 \u062f\u0631 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0646 \u0633\u0631\u0645 \u062f\u0631 \u0645\u0648\u0642\u0639\u06cc\u062a \u0645\u0637\u0644\u0648\u0628 \u0646\u0633\u0628\u062a \u0628\u0647 \u062f\u0648\u0631\u0628\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0645\u060c \u0686\u0647 \u06a9\u0646\u0645\u061f", "What was the total combined income, during the last 12 months, of all members of your family? ": "\u062f\u0631 \u06a9\u0644\u060c \u062f\u0631\u0622\u0645\u062f 12 \u0645\u0627\u0647 \u06af\u0630\u0634\u062a\u0647 \u0647\u0645\u06c0 \u0627\u0639\u0636\u0627\u06cc \u062e\u0627\u0646\u0648\u0627\u062f\u0647 \u0634\u0645\u0627 \u0686\u0642\u062f\u0631 \u0628\u0648\u062f\u0647 \u0627\u0633\u062a\u061f", - "What's Your Next Accomplishment?": "\u062f\u0633\u062a\u0627\u0648\u0631\u062f \u0628\u0639\u062f\u06cc \u0634\u0645\u0627 \u0686\u06cc\u0633\u062a\u061f", "What's in my clipboard?": "\u062f\u0631 \u06a9\u0644\u06cc\u067e \u0628\u0648\u0631\u062f \u0645\u0646 \u0686\u06cc\u0633\u062a\u061f", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "\u0648\u0642\u062a\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u0646\u062f\u06af\u0627\u0646 \u0628\u0647 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u067e\u0627\u0633\u062e \u0645\u06cc\u200c\u062f\u0647\u0646\u062f\u060c \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0645\u06cc\u200c\u0628\u06cc\u0646\u0646\u062f \u06a9\u0647 \u062c\u0648\u0627\u0628 \u062f\u0631\u0633\u062a \u0627\u0633\u062a \u06cc\u0627 \u0646\u0627\u062f\u0631\u0633\u062a\u060c \u0648 \u0646\u0645\u0631\u06c0 \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0631\u0627 \u0645\u06cc\u200c\u06af\u06cc\u0631\u0646\u062f.", "When your face is in position, use the Take Photo button {icon} below to take your photo.": "\u0647\u0631 \u0632\u0645\u0627\u0646 \u062a\u0635\u0648\u06cc\u0631 \u0634\u0645\u0627 \u062f\u0631 \u0645\u0648\u0642\u0639\u06cc\u062a \u0645\u0637\u0644\u0648\u0628 \u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u060c \u0627\u0632 \u062f\u06a9\u0645\u06c0 \u062a\u0635\u0648\u06cc\u0631\u0645 \u0631\u0627 \u0628\u0631\u062f\u0627\u0631 {icon} \u062f\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.", @@ -2659,7 +2648,6 @@ "{categoryText} in {parentDisplayname}": "{categoryText} \u062f\u0631 {parentDisplayname}", "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} of {maxCharacters}": "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} \u0627\u0632 {maxCharacters}", "{display_name} Settings": " \u062a\u0646\u0638\u06cc\u0645\u0627\u062a {display_name} ", - "{download_link_start}Download this image (right-click or option-click, save as){link_end} and then {upload_link_start}upload{link_end} it to your backpack.": "{download_link_start} \u0627\u06cc\u0646 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f ( \u06a9\u0644\u06cc\u06a9 \u0631\u0627\u0633\u062a \u06cc\u0627 \u062f\u0648\u06a9\u0644\u06cc\u06a9\u060c \u0630\u062e\u06cc\u0631\u0647 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646) {link_end}\u00a0 \u0648 \u0633\u067e\u0633 {upload_link_start}\u062f\u0631 \u0628\u0633\u062a\u06c0 \u062e\u0648\u062f {link_end} \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f.", "{earned}/{possible} point (graded)": [ "{earned}/{possible} \u0646\u0645\u0631\u0647 (\u0628\u0627\u0631\u0645\u200c\u0628\u0646\u062f\u06cc\u200c\u0634\u062f\u0647)", "{earned}/{possible} \u0646\u0645\u0631\u0647 (\u0628\u0627\u0631\u0645\u200c\u0628\u0646\u062f\u06cc\u200c\u0634\u062f\u0647)" diff --git a/cms/static/js/i18n/fr/djangojs.js b/cms/static/js/i18n/fr/djangojs.js index 07e5c92aa490..a2986452be21 100644 --- a/cms/static/js/i18n/fr/djangojs.js +++ b/cms/static/js/i18n/fr/djangojs.js @@ -245,8 +245,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "L'acc\u00e8s \u00e0 une partie du contenu de ce {blockType} est restreint \u00e0 un groupe d'\u00e9tudiants sp\u00e9cifique.", "Access to this unit is restricted to: {selectedGroupsLabel}": "L'acc\u00e8s \u00e0 cette unit\u00e9 est limit\u00e9 \u00e0\u00a0: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "L'acc\u00e8s \u00e0 ce {blockType} est restreint \u00e0\u00a0: {selectedGroupsLabel}", - "Accomplishments": "Accomplissements", - "Accomplishments Pagination": "Paginations des r\u00e9alisations", "Account": "Compte", "Account Information": "Information du compte", "Account Not Activated": "Compte non activ\u00e9", @@ -643,7 +641,6 @@ "Create a content group": "Cr\u00e9er un groupe de contenu", "Create a new team if you can't find an existing team to join, or if you would like to learn with friends you know.": "Cr\u00e9ez une nouvelle \u00e9quipe si vous ne trouvez pas une \u00e9quipe existante \u00e0 rejoindre, ou si vous d\u00e9sirez apprendre avec des amis que vous connaissez d\u00e9j\u00e0.", "Create a report of problem responses": "Cr\u00e9er un rapport des r\u00e9ponses aux probl\u00e8mes", - "Create a {link_start}Mozilla Backpack{link_end} account, or log in to your existing account": "Cr\u00e9ez un compte {link_start}Mozilla Backpack{link_end}, ou connectez-vous \u00e0 votre compte existant", "Create account using %(providerName)s.": "Cr\u00e9er un compte avec %(providerName)s.", "Create an Account": "Cr\u00e9er un compte", "Create an Account.": "Cr\u00e9er un compte.", @@ -752,7 +749,6 @@ "Duplicate": "Dupliquer", "Duplicating": "Dupliquer", "Duration (sec)": "Dur\u00e9e (sec)", - "Earned %(created)s.": "%(created)s obtenus.", "Earned Certificates": "Certificats obtenus", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "EdX ne dispose pas de transcription synchronis\u00e9e pour cette vid\u00e9o dans Studio, mais il existe une transcription YouTube. Vous pouvez importer la transcription Youtube ou t\u00e9l\u00e9versez votre propre fichier de transcription srt.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "EdX ne dispose pas de transcription synchronis\u00e9e pour cette vid\u00e9o. Veuillez t\u00e9l\u00e9verser un fichier de transcription .srt.", @@ -917,7 +913,6 @@ "Financial Assistance": "Soutien Financier", "Financial Assistance Application": "Demande d'assistance financi\u00e8re", "Find": "Trouver", - "Find a course": "Trouver un cours", "Find and replace": "Trouver et remplacer", "Find answers to the top questions asked by learners.": "Trouver les r\u00e9ponses aux principales questions pos\u00e9es par vos \u00e9tudiants.", "Find discussions": "Trouver des discussions", @@ -1652,10 +1647,7 @@ "Set up your certificate": "Configurer votre certificat", "Settings": "Param\u00e8tres", "Settings updated": "Param\u00e8tres mis \u00e0 jour", - "Share": "Partager", "Share Alike": "Partage \u00e0 l'identique", - "Share on Mozilla Backpack": "Partager sur Mozilla Backpack", - "Share your \"%(display_name)s\" award": "Partager votre prix \"%(display_name)s\"", "Short explanation": "Br\u00e8ve explication", "Show": "Afficher", "Show All": "Voir tout", @@ -1740,7 +1732,6 @@ "Start of transcript. Skip to the end.": "D\u00e9but de la transcription. Avancer jusqu'\u00e0 la fin.", "Start regenerating certificates for students in this course?": "D\u00e9marrer la r\u00e9g\u00e9n\u00e9ration des certificats pour tous les \u00e9tudiants du cours?", "Start search": "D\u00e9marrer la recherche", - "Start working toward your next learning goal.": "Commencer \u00e0 travailler vers votre prochain objectif d'apprentissage", "Started": "D\u00e9but\u00e9", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "Le recalcul du score de l'examen d'entr\u00e9e de l'\u00e9tudiant'{student_id}' a commenc\u00e9. Cliquez sur le bouton \u00abAfficher l\u2019\u00e9tat des t\u00e2ches\u00bb pour voir l'\u00e9tat de la t\u00e2che.", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "Le recalcul du score de l'exercice '<%- problem_id %>' de l'\u00e9tudiant '<%- student_id %>' a commenc\u00e9. Cliquez sur le bouton \u00abAfficher l\u2019\u00e9tat des t\u00e2ches\u00bb pour voir l'\u00e9tat de la t\u00e2che.", @@ -2040,7 +2031,6 @@ "To receive a certificate, you must also verify your identity.": "Pour recevoir un certificat, vous devez aussi valider votre identit\u00e9.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "Pour recevoir des cr\u00e9dits pour votre probl\u00e8me, cliquez sur \u00ab\u00a0Soumettre\u00a0\u00bb pour chaque exercice avant de s\u00e9lectionner \u00ab\u00a0Terminer mon examen\u00a0\u00bb.", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "Pour revoir la r\u00e9partition des \u00e9tudiants entre les cohortes ou voir les r\u00e9sultats d'un fichier CSV charg\u00e9, veuillez t\u00e9l\u00e9charger l'information du profile du cours ou des r\u00e9sultats de la cohorte sur la page de {link_start}T\u00e9l\u00e9chargement des donn\u00e9es{link_end}.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "Pour partager votre attestation sur Mozilla Backpack, vous devez d'abord avoir un compte Bacpack. Compl\u00e9ter les \u00e9tapes suivantes pour ajouter votre attestation \u00e0 Backpack.", "To take a successful photo, make sure that:": "Pour prendre une bonne photo, assurez-vous que: ", "To take the photo of your face, click on the camera button {icon}. If you need to try again, click 'Retake Photo'.": "Pour prendre la photo de votre visage, cliquez sur le bouton de la cam\u00e9ra {icon}. Si vous devez recommencer, cliquez sur 'Reprendre la photo'.", "To verify your identity, you need a webcam and a government-issued photo ID.": "Pour valider votre identit\u00e9, vous devez poss\u00e9der une cam\u00e9ra et une pi\u00e8ce d'identit\u00e9 avec photo.", @@ -2263,7 +2253,6 @@ "What if I can't see the camera image, or if I can't see my photo do determine which side is visible?": "Que se passe-t-il si je ne peux pas voir l'image de l'appareil photo ou si je ne peux pas voir ma photo pour d\u00e9terminer quel c\u00f4t\u00e9 est visible ?", "What if I have difficulty holding my ID in position relative to the camera?": "Que faire si j'ai des difficult\u00e9s \u00e0 tenir ma carte d'identit\u00e9 en position par rapport \u00e0 la cam\u00e9ra ?", "What if I have difficulty holding my head in position relative to the camera?": "Que faire si j'ai des difficult\u00e9s \u00e0 maintenir ma t\u00eate en position par rapport \u00e0 la cam\u00e9ra ?", - "What's Your Next Accomplishment?": "Quel est votre prochain accomplissement?", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "Lorsque les \u00e9tudiants r\u00e9pondent \u00e0 une \u00e9valuation, ils voient imm\u00e9diatement si la r\u00e9ponse est juste ou fausse ainsi que leur note. ", "When your face is in position, use the Take Photo button {icon} below to take your photo.": "Lorsque votre visage est en position, utilisez le bouton \"Prendre une photo\" {icon} ci-dessous pour prendre votre photo.", "Which timed transcript would you like to use?": "Quelle transcription synchronis\u00e9e souhaitez-vous utiliser ?", @@ -2545,7 +2534,6 @@ "{categoryText} in {parentDisplayname}": "{categoryText} dans {parentDisplayname}", "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} of {maxCharacters}": "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} sur {maxCharacters}", "{display_name} Settings": "Param\u00e8tres de {display_name}", - "{download_link_start}Download this image (right-click or option-click, save as){link_end} and then {upload_link_start}upload{link_end} it to your backpack.": "{download_link_start}T\u00e9l\u00e9chargez cette image (clic droit ou option-clic, enregistrer sous){link_end} puis {upload_link_start}upload{link_end} dans votre sac \u00e0 dos.", "{earned}/{possible} point (graded)": [ "{earned}/{possible} point (not\u00e9)", "{earned}/{possible} points (not\u00e9)" diff --git a/cms/static/js/i18n/id/djangojs.js b/cms/static/js/i18n/id/djangojs.js index b2e3a0890169..fa26e7240789 100644 --- a/cms/static/js/i18n/id/djangojs.js +++ b/cms/static/js/i18n/id/djangojs.js @@ -88,8 +88,6 @@ "About Me": "Tentang Saya", "About You": "Tentang Anda", "About me": "Tentang saya", - "Accomplishments": "Pencapaian", - "Accomplishments Pagination": "Penomoran Halaman Pencapaian", "Account": "Akun", "Account Information": "Informasi Akun", "Account Not Activated": "Akun Belum Diaktifkan", @@ -577,7 +575,6 @@ "Financial Assistance": "Bantuan Finansial", "Financial Assistance Application": "Permohonan Bantuan Keuangan", "Find": "Cari", - "Find a course": "Cari kursus", "Find and replace": "Cari dan ganti", "Find answers to the top questions asked by learners.": "Temukan jawaban untuk pertanyaan yang paling sering ditanyakan.", "Find discussions": "Cari diskusi", @@ -1124,7 +1121,6 @@ "Set as a Special Exam": "Atur sebagai Ujian Spesial", "Settings": "Pengaturan", "Settings updated": "Pengaturan diperbarui", - "Share": "Bagikan", "Share Alike": "Bagikan Juga", "Short explanation": "Penjelasan singkat", "Show": "Bentangkan", diff --git a/cms/static/js/i18n/it-it/djangojs.js b/cms/static/js/i18n/it-it/djangojs.js index 593a272bb9ff..771c73e6c2eb 100644 --- a/cms/static/js/i18n/it-it/djangojs.js +++ b/cms/static/js/i18n/it-it/djangojs.js @@ -246,8 +246,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "L'accesso ad alcuni contenuti in questo {blockType} \u00e8 limitato a gruppi di studenti specifici.", "Access to this unit is restricted to: {selectedGroupsLabel}": "L'accesso a questa unit\u00e0 \u00e8 limitato a: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "L'accesso a questo {blockType} \u00e8 limitato a: {selectedGroupsLabel}", - "Accomplishments": "Risultati conseguiti", - "Accomplishments Pagination": "Paginazione dei risultati conseguiti", "Account": "Account", "Account Information": "Informazioni generali", "Account Not Activated": "Account non attivato ", @@ -650,7 +648,6 @@ "Create a content group": "Crea un gruppo di contenuti ", "Create a new team if you can't find an existing team to join, or if you would like to learn with friends you know.": "Crea un nuovo gruppo se non ne trovi uno esistente di cui far parte, o se vorresti apprendere insieme ad amici che conosci ", "Create a report of problem responses": "Crea un report sulle risposte ai problemi ", - "Create a {link_start}Mozilla Backpack{link_end} account, or log in to your existing account": "Creare un account {link_start}Mozilla Backpack{link_end} oppure accedere utilizzando l'account esistente. ", "Create account using %(providerName)s.": "Crea account utilizzando %(providerName)s.", "Create an Account": "Crea un account ", "Create an Account.": "Creare un account. ", @@ -760,7 +757,6 @@ "Duplicate": "Duplica", "Duplicating": "In duplicazione", "Duration (sec)": "Durata (sec)", - "Earned %(created)s.": "Ottenuto %(created)s.", "Earned Certificates": "Certificati conseguiti", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "EdX non ha una trascrizione con tempo per questo video in Studio, ma abbiamo trovato una trascrizione su YouTube. Puoi importare la trascrizione di YouTube o caricare il tuo file di trascrizione .srt. ", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "EdX non ha una trascrizione con tempi per questo video. Carica un file .srt.", @@ -926,7 +922,6 @@ "Financial Assistance": "Assistenza Finanziaria", "Financial Assistance Application": "Applicazione Assistenza finanziaria ", "Find": "Trova", - "Find a course": "Trova un corso ", "Find and replace": "Trova e sostituisci", "Find answers to the top questions asked by learners.": "Trova le risposte alle principali domande poste dagli studenti. ", "Find discussions": "Trova discussioni ", @@ -1668,10 +1663,7 @@ "Set up your certificate": "Prepara il tuo certificato", "Settings": "Impostazioni", "Settings updated": "Impostazioni aggiornate", - "Share": "Condividi ", "Share Alike": "Condividi allo stesso modo", - "Share on Mozilla Backpack": "Condividi su Mozilla Backpack", - "Share your \"%(display_name)s\" award": "Condividi il tuo riconoscimento \"%(display_name)s\" ", "Short explanation": "Breve spiegazione", "Show": "Mostra", "Show All": "Mostra tutto", @@ -1756,7 +1748,6 @@ "Start of transcript. Skip to the end.": "Inizio della trascrizione. Vai alla fine", "Start regenerating certificates for students in this course?": "Vuoi iniziare a rigenerare i certificati per gli studenti di questo corso? ", "Start search": "Avvia ricerca", - "Start working toward your next learning goal.": "Inizia a lavorare per il tuo prossimo obiettivo di apprendimento. ", "Started": "Avviato", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "Avviata attivit\u00e0 di ricalcolo del punteggio dell'esame di ammissione per lo studente '{student_id}'. Fai clic sul pulsante 'Mostra stato attivit\u00e0' per visualizzare lo stato dell'attivit\u00e0. ", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "Avviata attivit\u00e0 di ricalco del punteggio del problema '<%- problem_id %>' e dello studente '<%- student_id %>'. Fai clic sul pulsante 'Mostra stato attivit\u00e0' per visualizzare lo stato dell'attivit\u00e0. ", @@ -2056,7 +2047,6 @@ "To receive a certificate, you must also verify your identity.": "Per ricevere un certificato, \u00e8 necessario anche verificare la propria identit\u00e0 ", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "Per ricevere credito per i problemi, \u00e8 necessario selezionare \"Inoltra\" per ciascun problema prima di selezionare \"Termina il mio esame\". ", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "Per visualizzare le assegnazioni alle coorti degli studenti o i risultati del caricamento di un file CSV, scaricare le informazioni sul profilo del corso o i risultati della coorte nella pagina {link_start}Download dati{link_end}. ", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "Per condividere il tuo certificato su Mozilla Backpack, \u00e8 necessario prima avere un account Backpack. Completare i passi riportati di seguito per aggiungere il tuo certificato a Backpack.", "To take a successful photo, make sure that:": "Per una foto perfetta, accertarsi che: ", "To take the photo of your face, click on the camera button {icon}. If you need to try again, click 'Retake Photo'.": "Per scattare la foto del viso, fare clic sul pulsante della fotocamera {icon}. Per riprovare, fare clic su 'Scatta di nuovo'. ", "To verify your identity, you need a webcam and a government-issued photo ID.": "Per verificare la propria identit\u00e0, sono necessari una webcam ed un documento di identit\u00e0 con foto rilasciato dalle autorit\u00e0. ", @@ -2281,7 +2271,6 @@ "What if I have difficulty holding my ID in position relative to the camera?": "Cosa devo fare se ho difficolt\u00e0 a mantenere il documento di identit\u00e0 in posizione rispetto alla telecamera? ", "What if I have difficulty holding my head in position relative to the camera?": "Cosa devo fare se ho difficolt\u00e0 a mantenere la testa in posizione rispetto alla telecamera? ", "What was the total combined income, during the last 12 months, of all members of your family? ": "Qual \u00e8 stato il reddito totale complessivo, negli ultimi 12 mesi, di tutti i membri della tua famiglia? ", - "What's Your Next Accomplishment?": "Quale \u00e8 il tuo prossimo risultato? ", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "Quando gli studenti inviano una risposta a una valutazione, vedono immediatamente se la risposta \u00e8 corretta o errata e il punteggio ottenuto. ", "When your face is in position, use the Take Photo button {icon} below to take your photo.": "Quando il viso \u00e8 in posizione, utilizzare il pulsante Scatta la foto {icon} di seguito per scattare la foto. ", "Which timed transcript would you like to use?": "Quale trascrizione con tempi vuoi utilizzare? ", @@ -2568,7 +2557,6 @@ "{categoryText} in {parentDisplayname}": "{categoryText} in {parentDisplayname}", "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} of {maxCharacters}": "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} di {maxCharacters}", "{display_name} Settings": "{display_name} Impostazioni", - "{download_link_start}Download this image (right-click or option-click, save as){link_end} and then {upload_link_start}upload{link_end} it to your backpack.": "{download_link_start}Scaricare questa immagine (clic con il tasto destro del mouse o clic su salva con nome){link_end} e {upload_link_start}caricarla{link_end} nel backpack.", "{earned}/{possible} point (graded)": [ "{earned}/{possible} punto (valutato)", "{earned}/{possible} punti (valutato)" diff --git a/cms/static/js/i18n/ja-jp/djangojs.js b/cms/static/js/i18n/ja-jp/djangojs.js index 73e372909e87..ffc163bc6d1c 100644 --- a/cms/static/js/i18n/ja-jp/djangojs.js +++ b/cms/static/js/i18n/ja-jp/djangojs.js @@ -64,8 +64,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "\u3053\u306e {blockType} \u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306f\u7279\u5b9a\u306e\u30b0\u30eb\u30fc\u30d7\u306e\u53d7\u8b1b\u751f\u306b\u5236\u9650\u3055\u308c\u3066\u3044\u307e\u3059\u3002", "Access to this unit is restricted to: {selectedGroupsLabel}": "\u3053\u306e\u30e6\u30cb\u30c3\u30c8\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306f\u5236\u9650\u3055\u308c\u3066\u3044\u307e\u3059: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "\u3053\u306e {blockType} \u3078\u306e\u30a2\u30af\u30bb\u30b9\u306f\u5236\u9650\u3055\u308c\u3066\u3044\u307e\u3059: {selectedGroupsLabel}", - "Accomplishments": "\u696d\u7e3e", - "Accomplishments Pagination": "\u696d\u7e3e\u306e\u30da\u30fc\u30b8", "Account Information": "\u30a2\u30ab\u30a6\u30f3\u30c8\u60c5\u5831", "Account Not Activated": "\u6709\u52b9\u5316\u3055\u308c\u3066\u3044\u306a\u3044\u30a2\u30ab\u30a6\u30f3\u30c8", "Account Settings": "\u30a2\u30ab\u30a6\u30f3\u30c8\u8a2d\u5b9a", @@ -387,7 +385,6 @@ "Due:": "\u7de0\u5207: ", "Duplicate": "\u8907\u88fd", "Duration (sec)": "\u7d99\u7d9a\u6642\u9593 (\u79d2)", - "Earned %(created)s.": "%(created)s\u3092\u7372\u5f97\u6e08\u3002", "Earned Certificates": "\u53d6\u5f97\u6e08\u307f\u4fee\u4e86\u8a3c", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "Studio\u306b\u306f\u3053\u306e\u52d5\u753b\u7528\u306e\u6642\u9593\u4ed8\u304d\u5b57\u5e55\u304c\u3042\u308a\u307e\u305b\u3093\u304c\u3001YouTube\u306b\u306f\u5b57\u5e55\u304c\u3042\u308a\u307e\u3057\u305f\u3002YouTube\u306e\u5b57\u5e55\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3059\u308b\u304b\u3001\u72ec\u81ea\u306e.srt\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "EdX\u306b\u306f\u3053\u306e\u52d5\u753b\u7528\u306e\u6642\u9593\u4ed8\u304d\u5b57\u5e55\u304c\u3042\u308a\u307e\u305b\u3093\u3002.srt\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002", @@ -491,7 +488,6 @@ "Final Grade Received": "\u6700\u7d42\u6210\u7e3e\u53d7\u53d6\u6e08", "Financial Assistance": "\u7d4c\u6e08\u7684\u63f4\u52a9", "Financial Assistance Application": "\u7d4c\u6e08\u652f\u63f4\u7533\u8fbc\u66f8", - "Find a course": "\u8b1b\u5ea7\u3092\u63a2\u3059", "Find discussions": "\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3\u3092\u63a2\u3059", "First time here?": "\u3053\u3053\u306f\u521d\u3081\u3066\u3067\u3059\u304b\uff1f", "Follow or unfollow posts": "\u6295\u7a3f\u3092\u30d5\u30a9\u30ed\u30fc\u307e\u305f\u306f\u30d5\u30a9\u30ed\u30fc\u89e3\u9664\u3059\u308b", @@ -924,9 +920,6 @@ "Set as a Special Exam": "\u7279\u5225\u8a66\u9a13\u3068\u3057\u3066\u8a2d\u5b9a", "Set up your certificate": "\u4fee\u4e86\u8a3c\u3092\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044", "Settings": "\u8a2d\u5b9a", - "Share": "\u30b7\u30a7\u30a2", - "Share on Mozilla Backpack": "Mozilla Backpack\u3067\u30b7\u30a7\u30a2", - "Share your \"%(display_name)s\" award": "\"%(display_name)s\"\u3092\u30b7\u30a7\u30a2\u3059\u308b", "Show": "\u8868\u793a", "Show All": "\u5168\u3066\u3092\u8868\u793a", "Show Deprecated Settings": "\u975e\u63a8\u5968\u306e\u8a2d\u5b9a\u3092\u8868\u793a", @@ -971,7 +964,6 @@ "Start Date": "\u958b\u59cb\u65e5", "Start generating certificates for all students in this course?": "\u3053\u306e\u8b1b\u5ea7\u306e\u5168\u53d7\u8b1b\u8005\u306e\u4fee\u4e86\u8a3c\u751f\u6210\u3092\u958b\u59cb\u3057\u307e\u3059\u304b\uff1f", "Start regenerating certificates for students in this course?": "\u3053\u306e\u8b1b\u5ea7\u306e\u53d7\u8b1b\u8005\u306e\u4fee\u4e86\u8a3c\u306e\u518d\u751f\u6210\u3092\u958b\u59cb\u3057\u307e\u3059\u304b\uff1f", - "Start working toward your next learning goal.": "\u6b21\u306e\u5b66\u7fd2\u76ee\u6a19\u306b\u5411\u3051\u3066\u53d6\u308a\u7d44\u307f\u59cb\u3081\u307e\u3057\u3087\u3046\u3002", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "\u53d7\u8b1b\u8005\u00a0'{student_id}' \u306e\u5165\u5b66\u8a66\u9a13\u306e\u518d\u63a1\u70b9\u4f5c\u696d\u3092\u958b\u59cb\u3057\u307e\u3057\u305f\u3002 \u4f5c\u696d\u72b6\u6cc1\u3092\u898b\u308b\u306b\u306f '\u4f5c\u696d\u72b6\u6cc1\u3092\u898b\u308b' \u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "\u554f\u984c '<%- problem_id %>' \u304a\u3088\u3073\u53d7\u8b1b\u8005 '<%- student_id %>' \u306e\u518d\u63a1\u70b9\u4f5c\u696d\u3092\u958b\u59cb\u3057\u307e\u3057\u305f\u3002 \u4f5c\u696d\u72b6\u6cc1\u3092\u898b\u308b\u306b\u306f '\u4f5c\u696d\u72b6\u6cc1\u3092\u898b\u308b' \u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002", "Started task to override the score for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "\u554f\u984c '<%- problem_id %>' \u304a\u3088\u3073\u53d7\u8b1b\u8005 '<%- student_id %>' \u306e\u70b9\u6570\u3092\u7121\u52b9\u306b\u3059\u308b\u4f5c\u696d\u3092\u958b\u59cb\u3057\u307e\u3057\u305f\u3002 \u4f5c\u696d\u72b6\u6cc1\u3092\u898b\u308b\u306b\u306f '\u4f5c\u696d\u72b6\u6cc1\u3092\u898b\u308b' \u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002", @@ -1178,7 +1170,6 @@ "To receive a certificate, you must also verify your identity.": "\u4fee\u4e86\u8a3c\u3092\u53d6\u5f97\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u672c\u4eba\u8a8d\u8a3c\u3092\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "\u5358\u4f4d\u3092\u7372\u5f97\u3059\u308b\u306b\u306f\u3001\"\u8a66\u9a13\u3092\u7d42\u4e86\u3059\u308b\"\u3092\u9078\u629e\u3059\u308b\u524d\u306b\u5404\u554f\u984c\u3067\"\u63d0\u51fa\"\u3092\u9078\u629e\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "\u53d7\u8b1b\u8005\u306e\u30b3\u30db\u30fc\u30c8\u632f\u308a\u5206\u3051\u3084CSV\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u7d50\u679c\u3092\u78ba\u8a8d\u3059\u308b\u306b\u306f\u3001{link_start}\u30c7\u30fc\u30bf\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9{link_end} \u30da\u30fc\u30b8\u3067\u8b1b\u5ea7\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\u60c5\u5831\u307e\u305f\u306f\u30b3\u30db\u30fc\u30c8\u7d50\u679c\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u00a0", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "\u4fee\u4e86\u8a3c\u3092Mozilla Backpack\u3067\u30b7\u30a7\u30a2\u3059\u308b\u306b\u306f\u3001\u307e\u305aBackpack\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u5fc5\u8981\u3067\u3059\u3002\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u3092\u5b8c\u4e86\u3057\u3066\u3001Backpack\u306b\u4fee\u4e86\u8a3c\u3092\u8ffd\u52a0\u3057\u307e\u3057\u3087\u3046\u3002", "To take a successful photo, make sure that:": "\u4e0a\u624b\u304f\u5199\u771f\u304c\u64ae\u308c\u305f\u3089\u3001\u4ee5\u4e0b\u3092\u78ba\u8a8d: ", "To verify your identity, you need a webcam and a government-issued photo ID.": "\u672c\u4eba\u8a8d\u8a3c\u3092\u3059\u308b\u305f\u3081\u306b\u3001web\u30ab\u30e1\u30e9\u304a\u3088\u3073\u653f\u5e9c\u767a\u884c\u306e\u5199\u771f\u4ed8\u304dID\u304c\u5fc5\u8981\u3067\u3059\u3002", "Today": "\u4eca\u65e5", @@ -1319,7 +1310,6 @@ "What You Need for Verification": "\u8a8d\u8a3c\u306b\u5fc5\u8981\u306a\u3082\u306e", "What does %(platformName)s do with this photo?": "\u3053\u306e\u5199\u771f\u306f%(platformName)s \u3067\u3069\u306e\u3088\u3046\u306b\u4f7f\u308f\u308c\u308b\u306e\u3067\u3057\u3087\u3046\u304b\uff1f", "What does this mean?": "\u3053\u308c\u306f\u4f55\u3092\u610f\u5473\u3059\u308b\uff1f", - "What's Your Next Accomplishment?": "\u3042\u306a\u305f\u306e\u6b21\u306e\u696d\u7e3e\u306f\u4f55\uff1f", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "\u53d7\u8b1b\u8005\u306f\u3001\u89e3\u7b54\u3092\u63d0\u51fa\u3059\u308b\u3068\u3059\u3050\u306b\u6b63\u89e3\u304b\u4e0d\u6b63\u89e3\u304b\u304c\u5206\u304b\u308a\u3001\u63a1\u70b9\u7d50\u679c\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u3002", "Which timed transcript would you like to use?": "\u3069\u306e\u6642\u9593\u4ed8\u304d\u5b57\u5e55\u3092\u4f7f\u3044\u307e\u3059\u304b\uff1f", "Why activate?": "\u306a\u305c\u6709\u52b9\u5316\u3059\u308b\u306e\uff1f", diff --git a/cms/static/js/i18n/mn/djangojs.js b/cms/static/js/i18n/mn/djangojs.js index 1f18645722c0..a6b393ab6615 100644 --- a/cms/static/js/i18n/mn/djangojs.js +++ b/cms/static/js/i18n/mn/djangojs.js @@ -35,7 +35,6 @@ "ABCDEFGHIJKLMNOPQRSTUVWXYZ": "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "About Me": "\u041c\u0438\u043d\u0438\u0439 \u0442\u0443\u0445\u0430\u0439", "About me": "\u041c\u0438\u043d\u0438\u0439 \u0442\u0443\u0445\u0430\u0439", - "Accomplishments": "\u041e\u043b\u043e\u043b\u0442, \u0430\u043c\u0436\u0438\u043b\u0442\u0443\u0443\u0434", "Account": "\u0411\u04af\u0440\u0442\u0433\u044d\u043b", "Actions": "\u04ae\u0439\u043b\u0434\u043b\u04af\u04af\u0434", "Add Country": "\u0423\u043b\u0441 \u043d\u044d\u043c\u044d\u0445", diff --git a/cms/static/js/i18n/pl/djangojs.js b/cms/static/js/i18n/pl/djangojs.js index d04a40740d00..b8a76c3b2d42 100644 --- a/cms/static/js/i18n/pl/djangojs.js +++ b/cms/static/js/i18n/pl/djangojs.js @@ -87,8 +87,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "Dost\u0119p do niekt\u00f3rych tre\u015bci w tym {blockType} jest mo\u017cliwy wy\u0142\u0105cznie dla wybranych grup student\u00f3w.", "Access to this unit is restricted to: {selectedGroupsLabel}": "Dost\u0119p do tego ekranu jest mo\u017cliwy wy\u0142\u0105cznie dla grup/y: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "Dost\u0119p do tego {blockType} jest mo\u017cliwy wy\u0142\u0105cznie dla grup: {selectedGroupsLabel}", - "Accomplishments": "Osi\u0105gni\u0119cia", - "Accomplishments Pagination": "Paginacja osi\u0105gni\u0119\u0107", "Account": "Konto", "Account Information": "Dane konta", "Account Not Activated": "Konto nieaktywowane", @@ -442,7 +440,6 @@ "Due:": "Termin:", "Duplicate": "Zduplikuj", "Duration (sec)": "Czas trwania (sek)", - "Earned %(created)s.": "Zdoby\u0142e\u015b %(created)s.", "Earned Certificates": "Uzyskane certyfikaty", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "Nie posiadamy transkrypcji dla tego filmu w Studio, ale odnale\u017ali\u015bmy transkrypcj\u0119 w serwisie YouTube. Mo\u017cesz zaimportowa\u0107 transkrypcj\u0119 z YouTube lub przes\u0142a\u0107 w\u0142asny plik transkrypcji w formacie .srt.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "Brak transkrypcji dla tego filmu. Prosz\u0119 wgra\u0107 plik .srt.", @@ -555,7 +552,6 @@ "Final Grade Received": "Uzyskana ocena ko\u0144cowa", "Financial Assistance": "Wsparcie finansowe", "Financial Assistance Application": "Program wsparcia finansowego", - "Find a course": "Znajd\u017a kurs", "Find discussions": "Znajd\u017a dyskusj\u0119", "First time here?": "Pierwszy raz w portalu?", "Follow": "Obserwuj", @@ -1049,9 +1045,6 @@ "Set up your certificate": "Przygotuj certyfikat", "Settings": "Ustawienia", "Settings updated": "Ustawienia zmienione", - "Share": "Pochwal si\u0119", - "Share on Mozilla Backpack": "Podziel si\u0119 w Mozilla Backpack.", - "Share your \"%(display_name)s\" award": "Pochwal si\u0119 swoim osi\u0105gni\u0119ciem: \"%(display_name)s\"", "Short explanation": "Kr\u00f3tkie wyja\u015bnienie", "Show": "Poka\u017c", "Show All": "Poka\u017c wszystkie", @@ -1104,7 +1097,6 @@ "Start Date": "Data rozpocz\u0119cia", "Start generating certificates for all students in this course?": "Rozpocz\u0105\u0107 generowanie certyfikat\u00f3w dla wszystkich student\u00f3w tego kursu?", "Start regenerating certificates for students in this course?": "Czy wygenerowa\u0107 ponownie certyfikaty dla student\u00f3w tego kursu?", - "Start working toward your next learning goal.": "Rozpocznij nauk\u0119 w kierunku osi\u0105gni\u0119cia swojego kolejnego celu.", "Started": "Uruchomiono", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "Rozpocz\u0119to ponown\u0105 ocen\u0119 egzaminu wst\u0119pnego studenta '{student_id}'. Kliknij przycisk 'Poka\u017c status czynno\u015bci', aby sprawdzi\u0107 przebieg czynno\u015bci.", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "Rozpocz\u0119to ponown\u0105 ocen\u0119 \u0107wiczenia '<%- problem_id %>' dla studenta '<%- student_id %>'. Kliknij przycisk 'Poka\u017c status czynno\u015bci', aby sprawdzi\u0107 przebieg czynno\u015bci.", @@ -1330,7 +1322,6 @@ "To receive a certificate, you must also verify your identity.": "Aby otrzyma\u0107 certyfikat, musisz r\u00f3wnie\u017c potwierdzi\u0107 swoj\u0105 to\u017csamo\u015b\u0107.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "Aby otrzyma\u0107 punkty za \u0107wiczenia, musisz klikn\u0105\u0107 \"Wy\u015blij\" dla ka\u017cdego pojedynczego \u0107wiczenia, zanim wybierzesz \"Zako\u0144cz m\u00f3j egzamin\".", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "Aby sprawdzi\u0107 przydzia\u0142 student\u00f3w do kohort lub pozna\u0107 efekty za\u0142adowania pliku CSV, pobierz informacje profilowe z kursu lub przegl\u0105d kohort ze strony {link_start}pobierania danych{link_end}.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "Aby podzieli\u0107 si\u0119 swoim certyfikatem w Mozilla Backpack, najpierw musisz posiada\u0107 konto w Backpack. Wykonaj poni\u017csze czynno\u015bci w celu dodania swojego certyfikatu do Backpack.", "To take a successful photo, make sure that:": "Aby wykona\u0107 prawid\u0142owe zdj\u0119cie, upewnij si\u0119, \u017ce", "To verify your identity, you need a webcam and a government-issued photo ID.": "Aby potwierdzi\u0107 to\u017csamo\u015b\u0107, potrzebujesz kamerki internetowej i dokumentu to\u017csamo\u015bci.", "Today": "Dzisiaj", @@ -1489,7 +1480,6 @@ "What You Need for Verification": "Czego potrzebujesz do potwierdzenia to\u017csamo\u015bci", "What does %(platformName)s do with this photo?": "W jaki spos\u00f3b %(platformName)s dba o bezpiecze\u0144stwo danych?", "What does this mean?": "Co to oznacza?", - "What's Your Next Accomplishment?": "Co b\u0119dzie twoim kolejnym osi\u0105gni\u0119ciem?", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "W momencie kiedy studenci prze\u015bl\u0105 odpowied\u017a na zadanie, natychmiast widz\u0105, czy ich odpowied\u017a jest poprawna, czy b\u0142\u0119dna, a tak\u017ce uzyskany wynik.", "Which timed transcript would you like to use?": "Kt\u00f3r\u0105 transkrypcj\u0119 chcesz wykorzysta\u0107?", "Why activate?": "W jakim celu nale\u017cy aktywowa\u0107 konto?", diff --git a/cms/static/js/i18n/pt-pt/djangojs.js b/cms/static/js/i18n/pt-pt/djangojs.js index 94101bc295e5..c4f5af47fc8f 100644 --- a/cms/static/js/i18n/pt-pt/djangojs.js +++ b/cms/static/js/i18n/pt-pt/djangojs.js @@ -247,8 +247,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "O acesso a algum conte\u00fado neste {blockType} \u00e9 restrito a grupos espec\u00edficos de estudantes.", "Access to this unit is restricted to: {selectedGroupsLabel}": "O acesso a esta unidade est\u00e1 restrito a: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "O acesso a este {blockType} \u00e9 restrito a: {selectedGroupsLabel}", - "Accomplishments": "Conquistas", - "Accomplishments Pagination": "P\u00e1gina de conquistas", "Account": "Conta", "Account Information": "Informa\u00e7\u00e3o da conta", "Account Not Activated": "Conta N\u00e3o Ativada", @@ -652,7 +650,6 @@ "Create a content group": "Criar um grupo de conte\u00fado", "Create a new team if you can't find an existing team to join, or if you would like to learn with friends you know.": "Crie uma nova equipa se n\u00e3o conseguir encontrar uma equipa existente para se juntar, ou se pretende aprender com os amigos que conhece.", "Create a report of problem responses": "Crie um relat\u00f3rio de respostas a problemas", - "Create a {link_start}Mozilla Backpack{link_end} account, or log in to your existing account": "Crie uma conta {link_start}Mozilla Backpack{link_end} ou fa\u00e7a login num conta j\u00e1 existente", "Create account using %(providerName)s.": "Criar conta utilizando %(providerName)s.", "Create an Account": "Criar uma Conta", "Create an Account.": "Criar uma Conta.", @@ -763,7 +760,6 @@ "Duplicate": "Duplicar", "Duplicating": "A Duplicar", "Duration (sec)": "Dura\u00e7\u00e3o (seg)", - "Earned %(created)s.": "Ganho %(created)s .", "Earned Certificates": "Certificados obtidos", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "O EdX n\u00e3o tem uma transcri\u00e7\u00e3o temporizada deste v\u00eddeo no Studio, mas encontr\u00e1mos uma transcri\u00e7\u00e3o no YouTube. Pode importar a transcri\u00e7\u00e3o do YouTube ou carregar seu pr\u00f3prio ficheiro de transcri\u00e7\u00e3o .srt.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "O EdX n\u00e3o tem uma transcri\u00e7\u00e3o temporizada para este v\u00eddeo. Carregue um ficheiro .srt.", @@ -929,7 +925,6 @@ "Financial Assistance": "Apoio financeiro", "Financial Assistance Application": "Pedido de Assist\u00eancia Financeira", "Find": "Localizar", - "Find a course": "Encontre um curso", "Find and replace": "Localizar e substituir", "Find answers to the top questions asked by learners.": "Encontre as respostas para as principais quest\u00f5es colocadas pelos estudantes.", "Find discussions": "Encontrar debates", @@ -1673,10 +1668,7 @@ "Set up your certificate": "Configure o seu certificado", "Settings": "Configura\u00e7\u00f5es", "Settings updated": "Configura\u00e7\u00f5es atualizadas", - "Share": "Partilhar", "Share Alike": "Partilhar da Mesma Forma", - "Share on Mozilla Backpack": "Partilhe no Mozilla Backpack", - "Share your \"%(display_name)s\" award": "Partilhe o seu pr\u00e9mio \" %(display_name)s \"", "Short explanation": "Curta explica\u00e7\u00e3o", "Show": "Mostrar", "Show All": "Mostrar tudo", @@ -1761,7 +1753,6 @@ "Start of transcript. Skip to the end.": "In\u00edcio de transcri\u00e7\u00e3o. Saltar para o fim.", "Start regenerating certificates for students in this course?": "Impedir os alunos de gerar certificados neste curso?", "Start search": "Iniciar pesquisa", - "Start working toward your next learning goal.": "Comece a trabalhar para o seu pr\u00f3ximo objetivo de aprendizagem.", "Started": "Iniciado", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "Reiniciada a tarefa de reavalia\u00e7\u00e3o do exame de admiss\u00e3o do estudante '{student_id}'. Clique em \"Mostrar Estado da Tarefa\" para ver o estado da tarefa.", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "Iniciada a tarefa de reavalia\u00e7\u00e3o do problema '<%- problem_id %>' e estudante '<%- student_id %>'. Clique em 'Mostrar estado da tarefa' para ver o estado da tarefa.", @@ -2061,7 +2052,6 @@ "To receive a certificate, you must also verify your identity.": "Para receber um certificado, dever\u00e1 tamb\u00e9m validar a sua identidade.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "Para que as suas respostas sejam contabilizadas, clique no bot\u00e3o \"Submeter\" em cada quest\u00e3o antes de selecionar \"Terminar o exame\".", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "Para rever as tarefas dos estudantes por grupo ou ver os resultados do carregamento de um ficheiro CSV descarregue as informa\u00e7\u00f5es do perfil do curso ou os resultados do grupo na p\u00e1gina {link_start}Data da Transfer\u00eancia{link_end}.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "Para partilhar o seu certificado no Mozilla Backpack, dever\u00e1 criar uma conta Backpack. Conclua as etapas seguintes para poder adicionar o seu certificado no Backpack.", "To take a successful photo, make sure that:": "Para tirar uma foto bem-sucedida, certifique-se de que:", "To take the photo of your face, click on the camera button {icon}. If you need to try again, click 'Retake Photo'.": "Para tirar a fotografia do seu rosto, clique no bot\u00e3o da c\u00e2mara {icon}. Se precisar de tentar novamente, clique em 'Voltar a tirar fotografia'.", "To verify your identity, you need a webcam and a government-issued photo ID.": "Para validar a sua identidade, necessita de uma webcam e de um Documento de Identifica\u00e7\u00e3o com fotografia.", @@ -2288,7 +2278,6 @@ "What if I have difficulty holding my ID in position relative to the camera?": "E se eu tiver dificuldade em manter o meu documento de identifica\u00e7\u00e3o em posi\u00e7\u00e3o em rela\u00e7\u00e3o \u00e0 c\u00e2mara?", "What if I have difficulty holding my head in position relative to the camera?": "E se eu tiver dificuldade em manter minha cabe\u00e7a em posi\u00e7\u00e3o em rela\u00e7\u00e3o \u00e0 c\u00e2mara?", "What was the total combined income, during the last 12 months, of all members of your family? ": "Qual foi o rendimento total combinado de todos os seus membros da sua fam\u00edlia, durante os \u00faltimos 12 meses? ", - "What's Your Next Accomplishment?": "Qual \u00e9 a Sua Pr\u00f3xima Realiza\u00e7\u00e3o?", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "Quando os estudantes submetem uma resposta a uma avalia\u00e7\u00e3o, podem confirmar imediatamente se a resposta est\u00e1 correta ou incorreta e qual a pontua\u00e7\u00e3o recebida.", "When your face is in position, use the Take Photo button {icon} below to take your photo.": "Quando a sua cara estiver em posi\u00e7\u00e3o, use o bot\u00e3o Tirar foto {icon} abaixo para tirar uma fotografia.", "Which timed transcript would you like to use?": "Qual a transcri\u00e7\u00e3o cronometrada que deseja utilizar?", @@ -2563,7 +2552,6 @@ "{categoryText} in {parentDisplayname}": "{categoryText} em {parentDisplayname}", "{currentCountOpeningTag}{currentCharacterCount}{currentCountClosingTag} of {maxCharacters}": "{currentCountOpeningTag} {currentCharacterCount} {currentCountClosingTag} de {maxCharacters}", "{display_name} Settings": "{display_name} Configura\u00e7\u00f5es", - "{download_link_start}Download this image (right-click or option-click, save as){link_end} and then {upload_link_start}upload{link_end} it to your backpack.": "{download_link_start} Transfira esta imagem (clique com o bot\u00e3o direito do rato, ou bot\u00e3o de op\u00e7\u00f5es, e use op\u00e7\u00e3o salvar como){link_end} e, em seguida, {upload_link_start}carregue-a{link_end}- para a sua mochila.", "{earned}/{possible} point (graded)": [ "{earned}/{possible} ponto (classificado)", "{earned}/{possible} pontos (classificado)" diff --git a/cms/static/js/i18n/rtl/djangojs.js b/cms/static/js/i18n/rtl/djangojs.js index b94b5774debc..2cd28a576a4a 100644 --- a/cms/static/js/i18n/rtl/djangojs.js +++ b/cms/static/js/i18n/rtl/djangojs.js @@ -1029,6 +1029,7 @@ "Making Visible to Students": "M\u0250\u029e\u1d09n\u0183 V\u1d09s\u1d09bl\u01dd \u0287\u00f8 S\u0287nd\u01ddn\u0287s", "Manage": "M\u0250n\u0250\u0183\u01dd", "Manage Learners": "M\u0250n\u0250\u0183\u01dd \u0141\u01dd\u0250\u0279n\u01dd\u0279s", + "Manage Tags": "M\u0250n\u0250\u0183\u01dd \u0166\u0250\u0183s", "Manage my subscription": "M\u0250n\u0250\u0183\u01dd \u026f\u028e snbs\u0254\u0279\u1d09d\u0287\u1d09\u00f8n", "Manual": "M\u0250nn\u0250l", "Mark Exam As Completed": "M\u0250\u0279\u029e \u0246x\u0250\u026f \u023as \u023b\u00f8\u026fdl\u01dd\u0287\u01ddd", diff --git a/cms/static/js/i18n/ru/djangojs.js b/cms/static/js/i18n/ru/djangojs.js index 859dd1201f68..c660abfcf825 100644 --- a/cms/static/js/i18n/ru/djangojs.js +++ b/cms/static/js/i18n/ru/djangojs.js @@ -144,8 +144,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "\u042d\u0442\u043e\u0442 {blockType} \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0447\u0430\u0441\u0442\u0438, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439.", "Access to this unit is restricted to: {selectedGroupsLabel}": "\u042d\u0442\u043e\u0442 \u0431\u043b\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "\u042d\u0442\u043e\u0442 {blockType} \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d: {selectedGroupsLabel}", - "Accomplishments": "\u0414\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f", - "Accomplishments Pagination": "\u041f\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u043e\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0439", "Account": "\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c", "Account Information": "\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438", "Account Not Activated": "\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0430", @@ -550,7 +548,6 @@ "Due:": "\u0421\u0440\u043e\u043a:", "Duplicate": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c", "Duration (sec)": "\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c (\u0441\u0435\u043a.)", - "Earned %(created)s.": "\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043e %(created)s.", "Earned Certificates": "\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "\u0412 EdX \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u0430\u0439\u043b \u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c\u0438 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0430\u043c\u0438 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e, \u043d\u043e \u043c\u044b \u043d\u0430\u0448\u043b\u0438 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u043d\u0430 YouTube. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u0441 YouTube \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 srt-\u0444\u0430\u0439\u043b \u0441 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0430\u043c\u0438.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "\u0412 EdX \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0438\u0434\u0435\u043e. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 srt-\u0444\u0430\u0439\u043b.", @@ -668,7 +665,6 @@ "Financial Assistance": "\u0424\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u0430\u044f \u043f\u043e\u043c\u043e\u0449\u044c", "Financial Assistance Application": "\u0417\u0430\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u0443\u044e \u043f\u043e\u043c\u043e\u0449\u044c", "Find": "\u041d\u0430\u0439\u0442\u0438", - "Find a course": "\u041d\u0430\u0439\u0442\u0438 \u043a\u0443\u0440\u0441", "Find and replace": "\u041d\u0430\u0439\u0442\u0438 \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c", "Find answers to the top questions asked by learners.": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u043e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b, \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044f\u043c\u0438.", "Find discussions": "\u041d\u0430\u0445\u043e\u0434\u0438\u0442\u0435 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f", @@ -1245,9 +1241,6 @@ "Set as a Special Exam": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u044f", "Set up your certificate": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442", "Settings": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438", - "Share": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f", - "Share on Mozilla Backpack": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0432 Mozilla Backpack", - "Share your \"%(display_name)s\" award": "\u0420\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0437\u043d\u0430\u0447\u043a\u0435 \u00ab%(display_name)s\u00bb", "Short explanation": "\u041a\u0440\u0430\u0442\u043a\u043e\u0435 \u043f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0435", "Show": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c", "Show All": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0451", @@ -1309,7 +1302,6 @@ "Start of transcript. Skip to the end.": "\u041d\u0430\u0447\u0430\u043b\u043e \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432. \u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430", "Start regenerating certificates for students in this course?": "\u041d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439 \u043a\u0443\u0440\u0441\u0430?", "Start search": "\u041d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0438\u0441\u043a", - "Start working toward your next learning goal.": "\u041d\u0430\u0447\u043d\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u043a \u0441\u0432\u043e\u0435\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0446\u0435\u043b\u0438.", "Started": "\u041d\u0430\u0447\u0430\u0442\u043e", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0441\u0442\u0443\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u044f \u0434\u043b\u044f '{student_id}' \u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u00ab\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432\u00bb.", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f '<%- problem_id %>' \u0434\u043b\u044f \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044f '<%- student_id %>' \u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u00ab\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432\u00bb.", @@ -1533,7 +1525,6 @@ "To receive a certificate, you must also verify your identity.": "\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u043b\u0438\u0447\u043d\u043e\u0441\u0442\u044c.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u0430\u0447\u0451\u0442\u043d\u044b\u0435 \u0431\u0430\u043b\u043b\u044b \u0437\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u044f, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u00ab\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u00bb \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0432\u044b \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435 \u00ab\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0441\u0434\u0430\u0447\u0443 \u044d\u043a\u0437\u0430\u043c\u0435\u043d\u0430\u00bb", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "\u0427\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0438\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 CSV, \u0441\u043a\u0430\u0447\u0430\u0439\u0442\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u043b\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u00ab{link_start}\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445{link_end}\u00bb.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0432 Mozilla Backpack, \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c Backpack. \u0421\u043b\u0435\u0434\u0443\u0439\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u043c \u043d\u0438\u0436\u0435, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u0430 Backpack.", "To take a successful photo, make sure that:": "\u0427\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0441\u043d\u0438\u043c\u043e\u043a, \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044c\u0442\u0435\u0441\u044c, \u0447\u0442\u043e:", "To verify your identity, you need a webcam and a government-issued photo ID.": "\u0414\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f, \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0432\u0435\u0431-\u043a\u0430\u043c\u0435\u0440\u0430 \u0438 \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0435\u043d\u0438\u0435 \u043b\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u0441 \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0435\u0439: \u043f\u0430\u0441\u043f\u043e\u0440\u0442 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442.", "Today": "\u0421\u0435\u0433\u043e\u0434\u043d\u044f", @@ -1698,7 +1689,6 @@ "What You Need for Verification": "\u0427\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043b\u0438\u0447\u043d\u043e\u0441\u0442\u0438", "What does %(platformName)s do with this photo?": "\u0414\u043b\u044f \u0447\u0435\u0433\u043e %(platformName)s \u043d\u0443\u0436\u0435\u043d \u044d\u0442\u043e\u0442 \u0441\u043d\u0438\u043c\u043e\u043a?", "What does this mean?": "\u0427\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442?", - "What's Your Next Accomplishment?": "\u041a\u0430\u043a\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u0430\u0448\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435?", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "\u041a\u043e\u0433\u0434\u0430 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0435, \u043e\u043d\u0438 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0432\u0438\u0434\u044f\u0442, \u0432\u0435\u0440\u0435\u043d \u043b\u0438 \u0438\u0445 \u043e\u0442\u0432\u0435\u0442, \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0431\u0430\u043b\u043b\u044b.", "Which timed transcript would you like to use?": "\u041a\u0430\u043a\u0438\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c?", "Whole words": "\u0421\u043b\u043e\u0432\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c", diff --git a/cms/static/js/i18n/tr-tr/djangojs.js b/cms/static/js/i18n/tr-tr/djangojs.js index 2e3ec4546acb..c60abb5c1d6e 100644 --- a/cms/static/js/i18n/tr-tr/djangojs.js +++ b/cms/static/js/i18n/tr-tr/djangojs.js @@ -181,8 +181,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "Bu {blockType} t\u00fcr\u00fcndeki baz\u0131 i\u00e7eriklere eri\u015fim, belirli \u00f6\u011frenci gruplar\u0131na k\u0131s\u0131tl\u0131d\u0131r.", "Access to this unit is restricted to: {selectedGroupsLabel}": "Bu \u00fcniteye eri\u015fim \u015fu gruplara a\u00e7\u0131kt\u0131r: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "Bu {blockType} t\u00fcr\u00fcne eri\u015fim \u015funlara k\u0131s\u0131tl\u0131d\u0131r: {selectedGroupsLabel}", - "Accomplishments": "Ba\u015far\u0131lar", - "Accomplishments Pagination": "Ba\u015far\u0131lar Sayfaland\u0131r\u0131c\u0131s\u0131", "According to our records, you are not enrolled in any courses included in your {programName} program subscription. Enroll in a course from the {i_start}Program Details{i_end} page.": "Kay\u0131tlar\u0131m\u0131za g\u00f6re, {programName} program aboneli\u011finize dahil olan hi\u00e7bir derse kay\u0131tl\u0131 de\u011filsiniz. {i_start}Program Ayr\u0131nt\u0131lar\u0131{i_end} sayfas\u0131ndan bir derse kaydolun.", "Account": "Hesap", "Account Information": "Hesap Bilgisi", @@ -582,7 +580,6 @@ "Create a content group": "\u0130\u00e7erik grubu yarat", "Create a new team if you can't find an existing team to join, or if you would like to learn with friends you know.": "Kat\u0131lacak bir tak\u0131m bulamad\u0131ysan\u0131z, ya da tan\u0131d\u0131\u011f\u0131n\u0131z arkada\u015flar\u0131n\u0131zla \u00f6\u011frenmek istiyorsan\u0131z yeni bir tak\u0131m olu\u015fturun.", "Create a report of problem responses": "Problem cevaplar\u0131 i\u00e7in bir rapor olu\u015ftur", - "Create a {link_start}Mozilla Backpack{link_end} account, or log in to your existing account": "Bir {link_start}Mozilla Backpack{link_end} hesab\u0131 olu\u015fturun ya da mevcut hesab\u0131n\u0131za giri\u015f yap\u0131n", "Create account using %(providerName)s.": "%(providerName)s kullanarak bir hesap olu\u015ftur.", "Create an Account": "Bir Hesap Olu\u015ftur", "Create an Account.": "Bir Hesap Olu\u015ftur.", @@ -693,7 +690,6 @@ "Duplicate": "Kopyas\u0131n\u0131 \u00c7\u0131kar", "Duplicating": "Kopyas\u0131 \u00c7\u0131kar\u0131l\u0131yor", "Duration (sec)": "S\u00fcre (sn)", - "Earned %(created)s.": "%(created)s kazan\u0131ld\u0131.", "Earned Certificates": "Kazan\u0131lan Sertifikalar", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "EdX, Studio'da videonun zamanlar\u0131 i\u015faretlenmi\u015f altyaz\u0131s\u0131na sahip de\u011fildir, ama biz YouTube \u00fczerinde bir altyaz\u0131 bulduk. Youtube altyaz\u0131s\u0131n\u0131 i\u00e7e aktarabilir veya kendi .srt altyaz\u0131 dosyan\u0131z\u0131 y\u00fckleyebilirsiniz.", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "EdX bu videonun zamanlar\u0131 i\u015faretlenmi\u015f altyaz\u0131lar\u0131na sahip de\u011fildir. L\u00fctfen bir .srt dosyas\u0131 y\u00fckleyin.", @@ -857,7 +853,6 @@ "Financial Assistance": "M\u00e2li Yard\u0131m", "Financial Assistance Application": "Mali Yard\u0131m Ba\u015fvurusu", "Find": "Bul", - "Find a course": "Bir ders bul", "Find and replace": "Bul ve de\u011fi\u015ftir", "Find answers to the top questions asked by learners.": "\u00d6\u011frenciler taraf\u0131ndan en s\u0131k y\u00f6neltilen sorular\u0131n cevaplar\u0131na g\u00f6z at\u0131n.", "Find discussions": "Tart\u0131\u015fma bul", @@ -1594,10 +1589,7 @@ "Set up your certificate": "Sertifikan\u0131z\u0131 yap\u0131land\u0131r\u0131n", "Settings": "Ayarlar", "Settings updated": "Ayarlar g\u00fcncellendi", - "Share": "Payla\u015f", "Share Alike": "Share Alike", - "Share on Mozilla Backpack": "Mozilla Backpack \u00fczerinde payla\u015f", - "Share your \"%(display_name)s\" award": "%(display_name)s \u00f6d\u00fcl\u00fcn\u00fc payla\u015f", "Short explanation": "K\u0131sa a\u00e7\u0131klama", "Show": "G\u00f6ster", "Show All": "Hepsini G\u00f6ster", @@ -1682,7 +1674,6 @@ "Start of transcript. Skip to the end.": "Altyaz\u0131n\u0131n ba\u015flang\u0131c\u0131. Sona atla.", "Start regenerating certificates for students in this course?": "Bu dersteki \u00f6\u011frenciler i\u00e7in sertifika yeniden olu\u015fturmay\u0131 ba\u015flat?", "Start search": "Aramaya ba\u015fla", - "Start working toward your next learning goal.": "Bir sonraki hedefin i\u00e7in \u00e7al\u0131\u015fmaya ba\u015fla.", "Started": "Ba\u015flad\u0131", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "'{student_id}' \u00f6\u011frencisi i\u00e7in giri\u015f s\u0131nav\u0131 yeniden puanlama g\u00f6revi ba\u015flat\u0131ld\u0131. G\u00f6revin durumunu g\u00f6rmek i\u00e7in 'G\u00f6rev Durumunu G\u00f6ster' d\u00fc\u011fmesine t\u0131klay\u0131n.", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "<%- problem_id %>' nolu problem ve '<%- student_id %>' nolu \u00f6\u011frenci i\u00e7in problemi yeniden notland\u0131rma g\u00f6revi ba\u015flad\u0131. Bu g\u00f6revin durumunu g\u00f6rmek i\u00e7in 'G\u00f6rev Durumunu G\u00f6r' d\u00fc\u011fmesine bas\u0131n\u0131z.", @@ -1983,7 +1974,6 @@ "To receive a certificate, you must also verify your identity.": "Bir sertifika almak i\u00e7in kimli\u011finizi de do\u011frulamal\u0131s\u0131n\u0131z.", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "Problemlerden kredi almak i\u00e7in, \"S\u0131nav\u0131m\u0131 Bitir\"i se\u00e7meden \u00f6nce her problem i\u00e7in \"G\u00f6nder\"e t\u0131klamal\u0131s\u0131n\u0131z.", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "\u00d6\u011frenci topluluk \u00f6devlerini g\u00f6zden ge\u00e7irmek veya CSV dosyas\u0131 y\u00fckleme sonu\u00e7lar\u0131n\u0131 g\u00f6rmek i\u00e7in ders profil bilgilerini veya topluluk sonu\u00e7lar\u0131n\u0131 {link_start}Veri \u0130ndir{link_end} sayfas\u0131 \u00fczerinden indirin.", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "Sertifikan\u0131z\u0131 Mozilla Backpack \u00fczerinde payla\u015fmak i\u00e7in bir Backpack hesab\u0131n\u0131z\u0131n olmas\u0131 gerekiyor. \u0130lerleyen ad\u0131mlar\u0131 takip ederek sertifikan\u0131z\u0131 Backpack'e ekleyebilirsiniz.", "To take a successful photo, make sure that:": "\u0130yi bir foto\u011fraf \u00e7ekmek i\u00e7in, \u015funlara dikkat edin:", "To take the photo of your face, click on the camera button {icon}. If you need to try again, click 'Retake Photo'.": "Y\u00fcz\u00fcn\u00fcz\u00fcn foto\u011fraf\u0131n\u0131 \u00e7ekmek i\u00e7in, kamera d\u00fc\u011fmesine {icon} t\u0131klay\u0131n. Yeniden denemeye ihtiyac\u0131n\u0131z varsa, 'Tekrar Foto\u011fraf \u00c7ek'e t\u0131klay\u0131n.", "To verify your identity, you need a webcam and a government-issued photo ID.": "Kimli\u011finizi do\u011frulamak i\u00e7in bir web kameras\u0131 ve devlet taraf\u0131ndan verilmi\u015f n\u00fcfus kimli\u011fi gerekiyor.", @@ -2208,7 +2198,6 @@ "What if I have difficulty holding my ID in position relative to the camera?": "Kimli\u011fimi kameraya g\u00f6re yerinde tutmakta zorluk \u00e7ekersem ne olur? ", "What if I have difficulty holding my head in position relative to the camera?": "Ba\u015f\u0131m\u0131 kameraya g\u00f6re pozisyonda tutmakta zorluk \u00e7ekiyorsam ne olur? ", "What was the total combined income, during the last 12 months, of all members of your family? ": "T\u00fcm aile \u00fcyelerinizin son 12 ayl\u0131k toplam geliri, ne kadard\u0131?", - "What's Your Next Accomplishment?": "Bir Sonraki Ba\u015far\u0131n Ne Olacak?", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "\u00d6\u011frenciler bir de\u011ferlendirmeye cevap g\u00f6nderdi\u011finde, de\u011ferlendirmedeki cevaplar\u0131n\u0131n do\u011fru ya da yanl\u0131\u015f olup olmad\u0131\u011f\u0131n\u0131 ve ald\u0131klar\u0131 notu hemen g\u00f6rebilirler.", "When your face is in position, use the Take Photo button {icon} below to take your photo.": "Y\u00fcz\u00fcn\u00fcz \u00e7er\u00e7eve i\u00e7indeyken, a\u015fa\u011f\u0131daki Foto\u011fraf \u00c7ek {icon} d\u00fc\u011fmesini kullanarak foto\u011fraf\u0131n\u0131z\u0131 \u00e7ekin.", "Which timed transcript would you like to use?": "Hangi zamanlanm\u0131\u015f altyaz\u0131y\u0131 kullanmak istersiniz?", diff --git a/cms/static/js/i18n/uk/djangojs.js b/cms/static/js/i18n/uk/djangojs.js index 034f7616a6a1..c26ae867d626 100644 --- a/cms/static/js/i18n/uk/djangojs.js +++ b/cms/static/js/i18n/uk/djangojs.js @@ -103,8 +103,6 @@ "Abbreviation": "\u0410\u0431\u0440\u0435\u0432\u0456\u0430\u0442\u0443\u0440\u0430", "About Me": "\u041f\u0440\u043e \u043c\u0435\u043d\u0435", "About me": "\u041f\u0440\u043e \u043c\u0435\u043d\u0435", - "Accomplishments": "\u0414\u043e\u0441\u044f\u0433\u043d\u0435\u043d\u043d\u044f", - "Accomplishments Pagination": "\u041d\u0443\u043c\u0435\u0440\u0430\u0446\u0456\u044f \u0434\u043e\u0441\u044f\u0433\u043d\u0435\u043d\u044c", "Account Information": "\u0406\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0456\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443", "Account Settings": "\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443", "Account Settings page.": "\u0421\u0442\u043e\u0440\u0456\u043d\u043a\u0430 \u043d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u044c \u043e\u0431\u043b\u0456\u043a\u043e\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0438\u0441\u0443.", @@ -1312,7 +1310,6 @@ "Web:": "\u0412\u0435\u0431:", "Weight of Total Grade": "\u0412\u0430\u0433\u0430 \u0437\u0430\u0433\u0430\u043b\u044c\u043d\u043e\u0457 \u043e\u0446\u0456\u043d\u043a\u0438", "We\u2019re sorry to see you go!": "\u041d\u0430\u043c \u0434\u0443\u0436\u0435 \u0448\u043a\u043e\u0434\u0430, \u0449\u043e \u0432\u0438 \u043f\u043e\u043a\u0438\u0434\u0430\u0454\u0442\u0435 \u043d\u0430\u0441!", - "What's Your Next Accomplishment?": "\u042f\u043a\u0435 \u0432\u0430\u0448\u0435 \u043d\u0430\u0441\u0442\u0443\u043f\u043d\u0435 \u0434\u043e\u0441\u044f\u0433\u043d\u0435\u043d\u043d\u044f?", "Whole words": "\u0426\u0456\u043b\u0456 \u0441\u043b\u043e\u0432\u0430", "Width": "\u0428\u0438\u0440\u0438\u043d\u0430", "Will Be Visible To:": "\u0411\u0443\u0434\u0435 \u0432\u0438\u0434\u0438\u043c\u043e \u0434\u043b\u044f: ", diff --git a/cms/static/js/i18n/vi/djangojs.js b/cms/static/js/i18n/vi/djangojs.js index 2bf7dba12c70..0957bcc0e5b8 100644 --- a/cms/static/js/i18n/vi/djangojs.js +++ b/cms/static/js/i18n/vi/djangojs.js @@ -85,8 +85,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "Truy c\u1eadp v\u00e0o m\u1ed9t s\u1ed1 n\u1ed9i dung trong {blockType} n\u00e0y ch\u1ec9 d\u00e0nh cho nh\u1eefng nh\u00f3m ng\u01b0\u1eddi h\u1ecdc c\u1ee5 th\u1ec3.", "Access to this unit is restricted to: {selectedGroupsLabel}": "Truy c\u1eadp v\u00e0o \u0111\u01a1n v\u1ecb n\u00e0y \u0111\u01b0\u1ee3c gi\u1edbi h\u1ea1n \u1edf: {selectedGroupsLabel}", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "Truy c\u1eadp v\u00e0o {blockType} n\u00e0y \u0111\u01b0\u1ee3c gi\u1edbi h\u1ea1n \u1edf: {selectedGroupsLabel}", - "Accomplishments": "Nh\u1eefng th\u00e0nh qu\u1ea3", - "Accomplishments Pagination": "Ph\u00e2n trang Th\u00e0nh qu\u1ea3", "Account": "T\u00e0i kho\u1ea3n", "Account Information": "Th\u00f4ng tin T\u00e0i kho\u1ea3n", "Account Settings": "Thi\u1ebft l\u1eadp t\u00e0i kho\u1ea3n", diff --git a/cms/static/js/i18n/zh-cn/djangojs.js b/cms/static/js/i18n/zh-cn/djangojs.js index 57038f3be2f7..9b17865c658f 100644 --- a/cms/static/js/i18n/zh-cn/djangojs.js +++ b/cms/static/js/i18n/zh-cn/djangojs.js @@ -121,8 +121,6 @@ "Access to some content in this {blockType} is restricted to specific groups of learners.": "\u6b64{blockType}\u7684\u67d0\u4e9b\u5185\u5bb9\u4ec5\u9650\u6307\u5b9a\u5206\u7ec4\u5b66\u5458\u53ef\u8bbf\u95ee\u3002", "Access to this unit is restricted to: {selectedGroupsLabel}": "\u4ec5\u9650{selectedGroupsLabel}\u53ef\u8bbf\u95ee\u8be5\u5355\u5143", "Access to this {blockType} is restricted to: {selectedGroupsLabel}": "\u4ec5\u9650{selectedGroupsLabel}\u53ef\u8bbf\u95ee\u6b64{blockType}", - "Accomplishments": "\u6210\u7ee9", - "Accomplishments Pagination": "\u6210\u7ee9\u5206\u9875", "Account": "\u8d26\u53f7", "Account Information": "\u8d26\u53f7\u4fe1\u606f", "Account Not Activated": "\u8d26\u53f7\u672a\u6fc0\u6d3b", @@ -431,6 +429,7 @@ "Continue Exam Without Proctoring": "\u5173\u95ed\u76d1\u8003\u6a21\u5f0f", "Continue to my practice exam": "\u7ee7\u7eed\u8fdb\u884c\u6a21\u62df\u8003\u8bd5", "Copy": "\u590d\u5236", + "Copy Component Location": "\u590d\u5236\u7ec4\u4ef6\u5730\u5740", "Copy Email To Editor": "\u590d\u5236\u90ae\u4ef6\u81f3\u7f16\u8f91\u5668", "Copy row": "\u590d\u5236\u884c", "Correct failed component": "\u7ea0\u6b63\u5931\u8d25\u7684\u7ec4\u4ef6", @@ -503,6 +502,7 @@ "Custom...": "\u81ea\u5b9a\u4e49\u2026", "Cut": "\u526a\u5207", "Cut row": "\u526a\u5207\u884c", + "Date": "\u65e5\u671f", "Date Added": "\u6dfb\u52a0\u65e5\u671f", "Date Joined": "\u52a0\u5165\u65e5\u671f", "Date Placed": "\u5df2\u8bbe\u7f6e\u65e5\u671f", @@ -551,6 +551,7 @@ "Discussion Home": "\u8ba8\u8bba\u533a", "Discussion topics in the course are not divided.": "\u4e0d\u533a\u5206\u8bfe\u7a0b\u4e2d\u7684\u8ba8\u8bba\u4e3b\u9898\u3002", "Discussions are unified; all learners interact with posts from other learners, regardless of the group they are in.": "\u8ba8\u8bba\u533a\u662f\u7edf\u4e00\u6807\u51c6\u7684\uff0c\u5b66\u5458\u53ef\u4ee5\u4e0e\u6240\u6709\u5176\u4ed6\u5c0f\u7ec4\u5b66\u5458\u7684\u5e16\u5b50\u8fdb\u884c\u4e92\u52a8\u3002", + "Dismiss": "\u89e3\u6563", "Display Name": "\u663e\u793a\u540d\u79f0", "Div": "Div \u6807\u7b7e", "Divide the selected content-specific discussion topics": "\u5c06\u5df2\u6311\u9009\u7684\u4ee5\u5177\u4f53\u5185\u5bb9\u800c\u5b9a\u7684\u8ba8\u8bba\u4e3b\u9898\u533a\u5206\u5f00\u6765", @@ -582,7 +583,6 @@ "Duplicate": "\u590d\u5236", "Duplicating": "\u6b63\u5728\u590d\u5236", "Duration (sec)": "\u6301\u7eed\u65f6\u95f4(\u79d2)", - "Earned %(created)s.": "\u5df2\u83b7\u5f97 %(created)s\u3002", "Earned Certificates": "\u5df2\u83b7\u53d6\u8bc1\u4e66", "EdX doesn't have a timed transcript for this video in Studio, but we found a transcript on YouTube. You can import the YouTube transcript or upload your own .srt transcript file.": "EdX \u5728 Studio \u4e2d\u6ca1\u6709\u8be5\u89c6\u9891\u7684\u5b57\u5e55\uff0c\u4f46\u662f\u6211\u4eec\u5728 YouTube \u4e2d\u627e\u5230\u4e86\u4e00\u4e2a\u5b57\u5e55\u3002\u60a8\u53ef\u4ee5\u5bfc\u5165 YouTube \u5b57\u5e55\u6216\u8005\u4e0a\u4f20\u60a8\u81ea\u5df1\u7684 .srt \u5b57\u5e55\u6587\u4ef6\u3002", "EdX doesn\\'t have a timed transcript for this video. Please upload an .srt file.": "EdX \u6ca1\u6709\u8be5\u89c6\u9891\u7684\u5b57\u5e55\u3002\u8bf7\u4e0a\u4f20\u4e00\u4e2a .srt \u6587\u4ef6\u3002", @@ -594,6 +594,7 @@ "Edit Membership": "\u7f16\u8f91\u56e2\u961f\u6210\u5458\u4fe1\u606f", "Edit Team": "\u7f16\u8f91\u56e2\u961f", "Edit Thumbnail": "\u7f16\u8f91\u7f29\u7565\u56fe", + "Edit Title": "\u7f16\u8f91\u6807\u9898", "Edit Your Name": "\u7f16\u8f91\u60a8\u7684\u540d\u5b57", "Edit this certificate?": "\u662f\u5426\u7f16\u8f91\u6b64\u8bc1\u4e66\uff1f", "Editable": "\u53ef\u7f16\u8f91", @@ -726,7 +727,6 @@ "Financial Assistance": "\u7ecf\u6d4e\u8865\u52a9", "Financial Assistance Application": "\u7ecf\u6d4e\u63f4\u52a9\u7533\u8bf7", "Find": "\u67e5\u627e", - "Find a course": "\u627e\u5230\u4e00\u4e2a\u8bfe\u7a0b", "Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", "Find answers to the top questions asked by learners.": "\u67e5\u770b\u5b66\u5458\u6700\u5e38\u95ee\u7684\u95ee\u9898\u53ca\u7b54\u6848\u3002", "Find discussions": "\u641c\u7d22\u8ba8\u8bba\u5e16", @@ -922,6 +922,7 @@ "Last published {lastPublishedStart}{publishedOn}{lastPublishedEnd} by {publishedByStart}{publishedBy}{publishedByEnd}": "\u6700\u8fd1\u7531{publishedByStart}{publishedBy}{publishedByEnd}\u4e8e{lastPublishedStart}{publishedOn}{lastPublishedEnd}\u53d1\u5e03\u3002", "Last updated": "\u6700\u540e\u66f4\u65b0", "Learn More": "\u4e86\u89e3\u66f4\u591a", + "Learn more": "\u4e86\u89e3\u66f4\u591a", "Learn more about {license_name}": "\u4e86\u89e3\u66f4\u591a\u5173\u4e8e {license_name}", "Learners are added to this cohort automatically.": "\u5b66\u5458\u5df2\u81ea\u52a8\u6dfb\u52a0\u81f3\u8fd9\u4e2a\u7ec4\u3002", "Learners are added to this cohort only when you provide their email addresses or usernames on this page.": "\u4ec5\u5f53\u60a8\u5728\u6b64\u9875\u9762\u4e2d\u63d0\u4f9b\u5b66\u5458\u7684\u90ae\u7bb1\u6216\u7528\u6237\u540d\u65f6\uff0c\u65b9\u53ef\u5c06\u5b66\u5458\u6dfb\u52a0\u81f3\u8fd9\u4e2a\u7ec4\u3002", @@ -1376,10 +1377,7 @@ "Set up your certificate": "\u8bbe\u7f6e\u60a8\u7684\u8bc1\u4e66", "Settings": "\u8bbe\u7f6e", "Settings updated": "\u8bbe\u7f6e\u5df2\u66f4\u65b0", - "Share": "\u5206\u4eab", "Share Alike": "\u76f8\u540c\u65b9\u5f0f\u5171\u4eab", - "Share on Mozilla Backpack": "\u5206\u4eab\u5230 Mozilla Backpack \u4e0a", - "Share your \"%(display_name)s\" award": "\u5206\u4eab\u60a8\u7684 \"%(display_name)s\" \u5956\u52b1", "Short explanation": "\u7b80\u8981\u8bf4\u660e", "Show All": "\u5168\u90e8\u663e\u793a", "Show Annotations": "\u663e\u793a\u6279\u6ce8", @@ -1453,7 +1451,6 @@ "Start of transcript. Skip to the end.": "\u5b57\u5e55\u5f00\u59cb\u3002\u8df3\u8f6c\u81f3\u7ed3\u5c3e\u3002", "Start regenerating certificates for students in this course?": "\u786e\u5b9a\u91cd\u65b0\u4ea7\u751f\u6b64\u8bfe\u7a0b\u6240\u6709\u5b66\u751f\u7684\u8bc1\u4e66\uff1f", "Start search": "\u5f00\u59cb\u641c\u7d22", - "Start working toward your next learning goal.": "\u5f00\u59cb\u5411\u60a8\u7684\u4e0b\u4e00\u4e2a\u5b66\u4e60\u76ee\u6807\u8fc8\u8fdb\u3002", "Started": "\u5df2\u7ecf\u5f00\u59cb", "Started entrance exam rescore task for student '{student_id}'. Click the 'Show Task Status' button to see the status of the task.": "\u5df2\u542f\u52a8\u4e3a\u5b66\u751f'{student_id}'\u7684\u5165\u5b66\u8003\u8bd5\u91cd\u65b0\u8bc4\u5206\u7684\u4efb\u52a1\uff0c\u8bf7\u70b9\u51fb\u201c\u663e\u793a\u4efb\u52a1\u72b6\u6001\u201d\u6309\u94ae\u6765\u67e5\u770b\u4efb\u52a1\u72b6\u6001\u3002", "Started rescore problem task for problem '<%- problem_id %>' and student '<%- student_id %>'. Click the 'Show Task Status' button to see the status of the task.": "\u5df2\u542f\u52a8\u8986\u76d6\u9898\u76ee\u201c<%- problem_id %>\u201d\u548c\u5b66\u751f\u201c<%- student_id %>\u201d\u5206\u6570\u7684\u4efb\u52a1\uff0c\u70b9\u51fb\u201c\u663e\u793a\u4efb\u52a1\u72b6\u6001\u201d\u53ef\u67e5\u770b\u4efb\u52a1\u7684\u72b6\u6001\u3002", @@ -1675,6 +1672,7 @@ "This learner will be removed from the team,allowing another learner to take the available spot.": "\u6b64\u6210\u5458\u5c06\u4f1a\u4ece\u8fd9\u4e2a\u961f\u4f0d\u79fb\u9664\u4ee5\u4fbf\u4e3a\u5176\u4ed6\u6210\u5458\u63d0\u4f9b\u7a7a\u4f59\u540d\u989d\u3002", "This link will open in a modal window": "\u8be5\u94fe\u63a5\u5c06\u5728\u6a21\u5f0f\u7a97\u53e3\u4e2d\u6253\u5f00", "This link will open in a new browser window/tab": "\u8be5\u94fe\u63a5\u5c06\u5728\u65b0\u6d4f\u89c8\u5668\u7a97\u53e3/\u6807\u7b7e\u9875\u4e2d\u6253\u5f00", + "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.": "\u6b64\u60c5\u51b5\u53ef\u80fd\u7531\u4e8e\u670d\u52a1\u5668\u9519\u8bef\u6216\u8005\u60a8\u7684\u7f51\u7edc\u8fde\u63a5\u9519\u8bef\u5bfc\u81f4\u3002\u5c1d\u8bd5\u5237\u65b0\u9875\u9762\u6216\u8005\u786e\u4fdd\u7f51\u7edc\u7545\u901a\u3002", "This page contains information about orders that you have placed with {platform_name}.": "\u6b64\u9875\u9762\u5305\u542b\u60a8\u5728{platform_name}\u6240\u4e0b\u7684\u8ba2\u5355\u4fe1\u606f\u3002", "This post could not be closed. Refresh the page and try again.": "\u65e0\u6cd5\u5173\u95ed\u6b64\u5e16\u5b50\uff0c\u8bf7\u5237\u65b0\u9875\u9762\u5e76\u91cd\u8bd5\u3002", "This post could not be flagged for abuse. Refresh the page and try again.": "\u65e0\u6cd5\u5c06\u6b64\u5e16\u5b50\u4e3e\u62a5\u4e3a\u6ee5\u7528\uff0c\u8bf7\u5237\u65b0\u9875\u9762\u5e76\u91cd\u8bd5\u3002", @@ -1725,7 +1723,6 @@ "To receive a certificate, you must also verify your identity.": "\u8981\u83b7\u5f97\u8bc1\u4e66\uff0c\u60a8\u5fc5\u987b\u9a8c\u8bc1\u60a8\u7684\u8eab\u4efd\u3002", "To receive credit for problems, you must select \"Submit\" for each problem before you select \"End My Exam\".": "\u5728\u70b9\u51fb \u201c\u7ed3\u675f\u6211\u7684\u8003\u8bd5\u201d \u4e4b\u524d\uff0c\u60a8\u5fc5\u987b\u70b9\u51fb \"\u63d0\u4ea4\" \u6309\u94ae\u4ee5\u83b7\u5f97\u5b66\u5206\u3002", "To review learner cohort assignments or see the results of uploading a CSV file, download course profile information or cohort results on the {link_start}Data Download{link_end} page.": "\u8981\u5ba1\u67e5\u5b66\u751f\u7fa4\u7ec4\u4f5c\u4e1a\u6216\u67e5\u770b\u4e0a\u4f20 CSV \u6587\u4ef6\u7684\u7ed3\u679c\uff0c\u8bf7\u5728{link_start}\u6570\u636e\u4e0b\u8f7d{link_end}\u9875\u9762\u4e0b\u8f7d\u8bfe\u7a0b\u4fe1\u606f\u6216\u7fa4\u7ec4\u7ed3\u679c\u3002", - "To share your certificate on Mozilla Backpack, you must first have a Backpack account. Complete the following steps to add your certificate to Backpack.": "\u8981\u5728 Mozilla Backpack \u4e0a\u5206\u4eab\u60a8\u7684\u8bc1\u4e66\uff0c\u60a8\u5fc5\u987b\u9996\u5148\u62e5\u6709\u4e00\u4e2aBackpack\u8d26\u53f7\u3002\u901a\u8fc7\u5b8c\u6210\u4ee5\u4e0b\u6b65\u9aa4\u5c06\u60a8\u7684\u8bc1\u4e66\u6dfb\u52a0\u81f3 Backpack\u3002", "To take a successful photo, make sure that:": "\u4e3a\u4e86\u7167\u76f8\u6210\u529f\uff0c\u8bf7\u786e\u4fdd\uff1a", "To verify your identity, you need a webcam and a government-issued photo ID.": "\u8981\u9a8c\u8bc1\u60a8\u7684\u8eab\u4efd\uff0c\u60a8\u9700\u8981\u4e00\u4e2a\u7f51\u7edc\u6444\u50cf\u5934\u548c\u4e00\u5f20\u653f\u5e9c\u7b7e\u53d1\u7684\u6709\u7167\u7247\u7684\u8eab\u4efd\u8bc1\u4ef6\u3002", "Toggle Account Password (Usable/Unusable)": "\u5207\u6362\u8d26\u53f7\u5bc6\u7801 \uff08\u53ef\u7528/\u4e0d\u53ef\u7528\uff09", @@ -1893,6 +1890,7 @@ "Waiting": "\u7b49\u5f85", "Want to make edX better for everyone?": "\u60f3\u8981\u8ba9edX \u4e3a\u6bcf\u4e2a\u4eba\u53d8\u5f97\u66f4\u597d?", "Warning": "\u8b66\u544a", + "Warning: ": "\u8b66\u544a\uff1a", "Warnings": "\u8b66\u544a", "We ask you to activate your account to ensure it is really you creating the account and to prevent fraud.": "\u6211\u4eec\u8981\u6c42\u60a8\u6fc0\u6d3b\u60a8\u7684\u8d26\u53f7\u662f\u4e3a\u4e86\u786e\u8ba4\u771f\u7684\u662f\u60a8\u521b\u5efa\u4e86\u8d26\u53f7\uff0c\u9632\u6b62\u6b3a\u8bc8\u3002", "We couldn't create your account.": "\u65e0\u6cd5\u521b\u5efa\u8d26\u53f7\u3002", @@ -1916,7 +1914,6 @@ "What does %(platformName)s do with this photo?": "%(platformName)s\u7528\u8fd9\u5f20\u7167\u7247\u505a\u4ec0\u4e48\uff1f", "What does this mean?": "\u8fd9\u662f\u4ec0\u4e48\u610f\u601d\uff1f", "What was the total combined income, during the last 12 months, of all members of your family? ": "\u5728\u8fc7\u53bb\u768412\u4e2a\u6708\u4e2d\uff0c\u60a8\u5bb6\u5ead\u6240\u6709\u4eba\u7684\u603b\u6536\u5165\u662f\u591a\u5c11\uff1f", - "What's Your Next Accomplishment?": "\u60a8\u7684\u4e0b\u4e00\u4e2a\u76ee\u6807\u662f\u4ec0\u4e48\uff1f", "When learners submit an answer to an assessment, they immediately see whether the answer is correct or incorrect, and the score received.": "\u5f53\u5b66\u5458\u63d0\u4ea4\u4e00\u4efd\u7b54\u6848\u81f3\u8bc4\u4f30\u65f6\uff0c\u4ed6\u4eec\u53ef\u4ee5\u7acb\u5373\u67e5\u770b\u7b54\u6848\u662f\u5426\u6b63\u786e\u548c\u6240\u5f97\u5206\u6570\u3002", "Which timed transcript would you like to use?": "\u60a8\u60f3\u4f7f\u7528\u54ea\u4e2a\u5b57\u5e55\uff1f", "While our support team is happy to assist with the edX platform, the course staff has the expertise for specific assignment questions, grading or the proper procedures in each course. Please post all course related questions within the Discussion Forum where the Course Staff can directly respond.": "\u6211\u4eec\u652f\u6301\u56e2\u961f\u5f88\u9ad8\u5174\u80fd\u534f\u4f5c edX \u5e73\u53f0\u3002\u5f53\u8bfe\u7a0b\u4eba\u5458\u5728\u8bfe\u7a0b\u4e2d\u6709\u4e13\u95e8\u7684\u5177\u4f53\u4f5c\u4e1a\u95ee\u9898\u3001\u8bc4\u5206\u6216\u7a0b\u5e8f\u7684\u4e13\u4e1a\u77e5\u8bc6\u65f6\u53ef\u4ee5\u5230\u8bba\u575b\u4e0a\u53d1\u5e03\u6709\u5173\u8bfe\u7a0b\u7684\u95ee\u9898\uff0c\u5c06\u4f1a\u5f97\u5230\u8bfe\u7a0b\u4eba\u5458\u7684\u56de\u7b54\u3002", diff --git a/cms/static/js/views/pages/container.js b/cms/static/js/views/pages/container.js index 71cbb9b26d5f..e624021b47ef 100644 --- a/cms/static/js/views/pages/container.js +++ b/cms/static/js/views/pages/container.js @@ -8,11 +8,14 @@ define(['jquery', 'underscore', 'backbone', 'gettext', 'js/views/pages/base_page 'js/models/xblock_info', 'js/views/xblock_string_field_editor', 'js/views/xblock_access_editor', 'js/views/pages/container_subviews', 'js/views/unit_outline', 'js/views/utils/xblock_utils', 'common/js/components/views/feedback_notification', 'common/js/components/views/feedback_prompt', - 'js/views/utils/tagging_drawer_utils', + 'js/views/utils/tagging_drawer_utils', 'js/utils/module', ], -function($, _, Backbone, gettext, BasePage, ViewUtils, ContainerView, XBlockView, AddXBlockComponent, - EditXBlockModal, MoveXBlockModal, XBlockInfo, XBlockStringFieldEditor, XBlockAccessEditor, - ContainerSubviews, UnitOutlineView, XBlockUtils, NotificationView, PromptView, TaggingDrawerUtils) { +function($, _, Backbone, gettext, BasePage, + ViewUtils, ContainerView, XBlockView, + AddXBlockComponent, EditXBlockModal, MoveXBlockModal, + XBlockInfo, XBlockStringFieldEditor, XBlockAccessEditor, + ContainerSubviews, UnitOutlineView, XBlockUtils, + NotificationView, PromptView, TaggingDrawerUtils, ModuleUtils) { 'use strict'; var XBlockContainerPage = BasePage.extend({ @@ -27,8 +30,11 @@ function($, _, Backbone, gettext, BasePage, ViewUtils, ContainerView, XBlockView 'click .delete-button': 'deleteXBlock', 'click .show-actions-menu-button': 'showXBlockActionsMenu', 'click .new-component-button': 'scrollToNewComponentButtons', + 'click .save-button': 'saveSelectedLibraryComponents', 'click .paste-component-button': 'pasteComponent', 'click .tags-button': 'openManageTags', + 'change .header-library-checkbox': 'toggleLibraryComponent', + 'click .collapse-button': 'collapseXBlock', }, options: { @@ -110,6 +116,7 @@ function($, _, Backbone, gettext, BasePage, ViewUtils, ContainerView, XBlockView model: this.model }); this.unitOutlineView.render(); + } this.listenTo(Backbone, 'move:onXBlockMoved', this.onXBlockMoved); @@ -538,6 +545,78 @@ function($, _, Backbone, gettext, BasePage, ViewUtils, ContainerView, XBlockView }); }, + duplicateXBlock: function(event) { + event.preventDefault(); + this.duplicateComponent(this.findXBlockElement(event.target)); + }, + + showMoveXBlockModal: function(event) { + var xblockElement = this.findXBlockElement(event.target), + parentXBlockElement = xblockElement.parents('.studio-xblock-wrapper'), + modal = new MoveXBlockModal({ + sourceXBlockInfo: XBlockUtils.findXBlockInfo(xblockElement, this.model), + sourceParentXBlockInfo: XBlockUtils.findXBlockInfo(parentXBlockElement, this.model), + XBlockURLRoot: this.getURLRoot(), + outlineURL: this.options.outlineURL + }); + + event.preventDefault(); + modal.show(); + }, + + deleteXBlock: function(event) { + event.preventDefault(); + this.deleteComponent(this.findXBlockElement(event.target)); + }, + + createPlaceholderElement: function() { + return $('
', {class: 'studio-xblock-wrapper'}); + }, + + createComponent: function(template, target) { + // A placeholder element is created in the correct location for the new xblock + // and then onNewXBlock will replace it with a rendering of the xblock. Note that + // for xblocks that can't be replaced inline, the entire parent will be refreshed. + var parentElement = this.findXBlockElement(target), + parentLocator = parentElement.data('locator'), + buttonPanel = target.closest('.add-xblock-component'), + listPanel = buttonPanel.prev(), + scrollOffset = ViewUtils.getScrollOffset(buttonPanel), + $placeholderEl = $(this.createPlaceholderElement()), + requestData = _.extend(template, { + parent_locator: parentLocator + }), + placeholderElement; + placeholderElement = $placeholderEl.appendTo(listPanel); + return $.postJSON(this.getURLRoot() + '/', requestData, + _.bind(this.onNewXBlock, this, placeholderElement, scrollOffset, false)) + .fail(function() { + // Remove the placeholder if the update failed + placeholderElement.remove(); + }); + }, + + duplicateComponent: function(xblockElement) { + // A placeholder element is created in the correct location for the duplicate xblock + // and then onNewXBlock will replace it with a rendering of the xblock. Note that + // for xblocks that can't be replaced inline, the entire parent will be refreshed. + var self = this, + parentElement = self.findXBlockElement(xblockElement.parent()), + scrollOffset = ViewUtils.getScrollOffset(xblockElement), + $placeholderEl = $(self.createPlaceholderElement()), + placeholderElement; + + placeholderElement = $placeholderEl.insertAfter(xblockElement); + XBlockUtils.duplicateXBlock(xblockElement, parentElement) + .done(function(data) { + self.onNewXBlock(placeholderElement, scrollOffset, true, data); + }) + .fail(function() { + // Remove the placeholder if the update failed + placeholderElement.remove(); + }); + }, + deleteComponent: function(xblockElement) { var self = this, xblockInfo = new XBlockInfo({ @@ -548,6 +627,61 @@ function($, _, Backbone, gettext, BasePage, ViewUtils, ContainerView, XBlockView }); }, + getSelectedLibraryComponents: function() { + var self = this; + var locator = this.$el.find('.studio-xblock-wrapper').data('locator'); + console.log(ModuleUtils); + $.getJSON( + ModuleUtils.getUpdateUrl(locator) + '/handler/get_block_ids', + function(data) { + self.selectedLibraryComponents = Array.from(data.source_block_ids); + self.storedSelectedLibraryComponents = Array.from(data.source_block_ids); + } + ); + }, + + saveSelectedLibraryComponents: function(e) { + var self = this; + var locator = this.$el.find('.studio-xblock-wrapper').data('locator'); + e.preventDefault(); + $.postJSON( + ModuleUtils.getUpdateUrl(locator) + '/handler/submit_studio_edits', + {values: {source_block_ids: self.storedSelectedLibraryComponents}}, + function() { + self.selectedLibraryComponents = Array.from(self.storedSelectedLibraryComponents); + self.toggleSaveButton(); + } + ); + }, + + toggleLibraryComponent: function(event) { + var componentId = $(event.target).closest('.studio-xblock-wrapper').data('locator'); + var storeIndex = this.storedSelectedLibraryComponents.indexOf(componentId); + if (storeIndex > -1) { + this.storedSelectedLibraryComponents.splice(storeIndex, 1); + this.toggleSaveButton(); + } else { + this.storedSelectedLibraryComponents.push(componentId); + this.toggleSaveButton(); + } + }, + + toggleSaveButton: function() { + var $saveButton = $('.nav-actions .save-button'); + if (JSON.stringify(this.selectedLibraryComponents.sort()) === JSON.stringify(this.storedSelectedLibraryComponents.sort())) { + $saveButton.addClass('is-hidden'); + window.removeEventListener('beforeunload', this.onBeforePageUnloadCallback); + } else { + $saveButton.removeClass('is-hidden'); + window.addEventListener('beforeunload', this.onBeforePageUnloadCallback); + } + }, + + onBeforePageUnloadCallback: function (event) { + event.preventDefault(); + event.returnValue = ''; + }, + onDelete: function(xblockElement) { // get the parent so we can remove this component from its parent. var xblockView = this.xblockView, diff --git a/cms/static/sass/elements/_layout.scss b/cms/static/sass/elements/_layout.scss index d4240b450f47..ae1090fe4623 100644 --- a/cms/static/sass/elements/_layout.scss +++ b/cms/static/sass/elements/_layout.scss @@ -223,6 +223,10 @@ box-shadow: none; border: 0; background-color: $white; + + &-fullwidth { + width: flex-grid(12, 12); + } } .content-supplementary { diff --git a/cms/static/sass/elements/_xblocks.scss b/cms/static/sass/elements/_xblocks.scss index 87dcb8c7d7c6..119a14826c63 100644 --- a/cms/static/sass/elements/_xblocks.scss +++ b/cms/static/sass/elements/_xblocks.scss @@ -43,6 +43,19 @@ display: flex; align-items: center; + .header-library-checkbox { + margin-right: 10px; + width: 17px; + height: 17px; + cursor: pointer; + vertical-align: middle; + } + + .header-library-checkbox-label { + vertical-align: middle; + cursor: pointer; + } + .header-details { @extend %cont-truncated; @@ -433,7 +446,17 @@ border-color: $blue; } - .xblock-header { + &.is-collapsed { + .xblock-render { + display: none; + } + + .collapse-button .fa { + transform: scale(1, -1); + } + } + + .xblock-header:not(.is-hidden) { display: block; } diff --git a/cms/templates/container.html b/cms/templates/container.html index ee2b56860187..41fe2eb53781 100644 --- a/cms/templates/container.html +++ b/cms/templates/container.html @@ -152,6 +152,14 @@

${_("Page Actions")}

${_("Edit")} + % if is_collapsible: + + % endif % endif @@ -164,8 +172,7 @@

${_("Page Actions")}

- -
+
<% assets_url = reverse('assets_handler', kwargs={'course_key_string': str(xblock_locator.course_key)}) diff --git a/cms/templates/studio_xblock_wrapper.html b/cms/templates/studio_xblock_wrapper.html index 38a61ff49106..4c73f940b9d6 100644 --- a/cms/templates/studio_xblock_wrapper.html +++ b/cms/templates/studio_xblock_wrapper.html @@ -18,7 +18,6 @@ xblock_url = xblock_studio_url(xblock) show_inline = xblock.has_children and not xblock_url section_class = "level-nesting" if show_inline else "level-element" -collapsible_class = "is-collapsible" if xblock.has_children else "" label = determine_label(xblock.display_name_with_default, xblock.scope_ids.block_type) messages = xblock.validate().to_json() block_is_unit = is_unit(xblock) @@ -49,14 +48,17 @@
% endif -
+
+

${_("Importing components")}

+
% endif -
+