Commit 96e5139d by Christine Lytwynec

Merge branch 'release'

Conflicts:
	common/lib/xmodule/xmodule/tests/test_video.py
parents 03cec2e0 0c202cb1
......@@ -5,6 +5,8 @@ These are notable changes in edx-platform. This is a rolling list of changes,
in roughly chronological order, most recent first. Add your entries at or near
the top. Include a label indicating the component affected.
Blades: Redirect Chinese students to a Chinese CDN for video. BLD-1052.
Studio: Move Peer Assessment into advanced problems menu.
Studio: Support creation and editing of split_test instances (Content Experiments)
......
......@@ -10,6 +10,7 @@ class CourseMetadata(object):
The objects have no predefined attrs but instead are obj encodings of the
editable metadata.
'''
# The list of fields that wouldn't be shown in Advanced Settings.
FILTERED_LIST = ['xml_attributes',
'start',
'end',
......@@ -21,6 +22,7 @@ class CourseMetadata(object):
'show_timezone',
'format',
'graded',
'video_speed_optimizations',
]
@classmethod
......
"""
Middleware to identify the country of origin of page requests.
Middleware adds `country_code` in session.
Usage:
# To enable the Geoinfo feature on a per-view basis, use:
decorator `django.utils.decorators.decorator_from_middleware(middleware_class)`
"""
import logging
import pygeoip
from ipware.ip import get_real_ip
from django.conf import settings
log = logging.getLogger(__name__)
class CountryMiddleware(object):
"""
Identify the country by IP address.
"""
def process_request(self, request):
"""
Identify the country by IP address.
Store country code in session.
"""
new_ip_address = get_real_ip(request)
old_ip_address = request.session.get('ip_address', None)
if new_ip_address != old_ip_address:
country_code = pygeoip.GeoIP(settings.GEOIP_PATH).country_code_by_addr(new_ip_address)
request.session['country_code'] = country_code
request.session['ip_address'] = new_ip_address
log.debug('Country code for IP: %s is set to %s', new_ip_address, country_code)
"""
Tests for CountryMiddleware.
"""
from mock import Mock, patch
import pygeoip
from django.test import TestCase
from django.test.utils import override_settings
from django.test.client import RequestFactory
from courseware.tests.tests import TEST_DATA_MONGO_MODULESTORE
from student.models import CourseEnrollment
from student.tests.factories import UserFactory, AnonymousUserFactory
from django.contrib.sessions.middleware import SessionMiddleware
from geoinfo.middleware import CountryMiddleware
@override_settings(MODULESTORE=TEST_DATA_MONGO_MODULESTORE)
class CountryMiddlewareTests(TestCase):
"""
Tests of CountryMiddleware.
"""
def setUp(self):
self.country_middleware = CountryMiddleware()
self.session_middleware = SessionMiddleware()
self.authenticated_user = UserFactory.create()
self.anonymous_user = AnonymousUserFactory.create()
self.request_factory = RequestFactory()
self.patcher = patch.object(pygeoip.GeoIP, 'country_code_by_addr', self.mock_country_code_by_addr)
self.patcher.start()
def tearDown(self):
self.patcher.stop()
def mock_country_code_by_addr(self, ip_addr):
"""
Gives us a fake set of IPs
"""
ip_dict = {
'117.79.83.1': 'CN',
'117.79.83.100': 'CN',
'4.0.0.0': 'SD',
}
return ip_dict.get(ip_addr, 'US')
def test_country_code_added(self):
request = self.request_factory.get('/somewhere',
HTTP_X_FORWARDED_FOR='117.79.83.1')
request.user = self.authenticated_user
self.session_middleware.process_request(request)
# No country code exists before request.
self.assertNotIn('country_code', request.session)
self.assertNotIn('ip_address', request.session)
self.country_middleware.process_request(request)
# Country code added to session.
self.assertEqual('CN', request.session.get('country_code'))
self.assertEqual('117.79.83.1', request.session.get('ip_address'))
def test_ip_address_changed(self):
request = self.request_factory.get('/somewhere',
HTTP_X_FORWARDED_FOR='4.0.0.0')
request.user = self.anonymous_user
self.session_middleware.process_request(request)
request.session['country_code'] = 'CN'
request.session['ip_address'] = '117.79.83.1'
self.country_middleware.process_request(request)
# Country code is changed.
self.assertEqual('SD', request.session.get('country_code'))
self.assertEqual('4.0.0.0', request.session.get('ip_address'))
def test_ip_address_is_not_changed(self):
request = self.request_factory.get('/somewhere',
HTTP_X_FORWARDED_FOR='117.79.83.1')
request.user = self.anonymous_user
self.session_middleware.process_request(request)
request.session['country_code'] = 'CN'
request.session['ip_address'] = '117.79.83.1'
self.country_middleware.process_request(request)
# Country code is not changed.
self.assertEqual('CN', request.session.get('country_code'))
self.assertEqual('117.79.83.1', request.session.get('ip_address'))
def test_same_country_different_ip(self):
request = self.request_factory.get('/somewhere',
HTTP_X_FORWARDED_FOR='117.79.83.100')
request.user = self.anonymous_user
self.session_middleware.process_request(request)
request.session['country_code'] = 'CN'
request.session['ip_address'] = '117.79.83.1'
self.country_middleware.process_request(request)
# Country code is not changed.
self.assertEqual('CN', request.session.get('country_code'))
self.assertEqual('117.79.83.100', request.session.get('ip_address'))
......@@ -113,6 +113,11 @@ class InheritanceMixin(XBlockMixin):
default=[],
scope=Scope.settings
)
video_speed_optimizations = Boolean(
help="Enable Video CDN.",
default=True,
scope=Scope.settings
)
def compute_inherited_metadata(descriptor):
......
......@@ -91,6 +91,7 @@ def get_test_system(course_id=SlashSeparatedCourseKey('org', 'course', 'run')):
error_descriptor_class=ErrorDescriptor,
get_user_role=Mock(is_staff=False),
descriptor_runtime=get_test_descriptor_system(),
user_location=Mock(),
)
......
......@@ -14,12 +14,12 @@ the course, section, subsection, unit, etc.
"""
import unittest
import datetime
from mock import Mock
from mock import Mock, patch
from . import LogicTest
from lxml import etree
from opaque_keys.edx.locations import SlashSeparatedCourseKey
from xmodule.video_module import VideoDescriptor, create_youtube_string
from xmodule.video_module import VideoDescriptor, create_youtube_string, get_video_from_cdn
from .test_import import DummySystem
from xblock.field_data import DictFieldData
from xblock.fields import ScopeIds
......@@ -551,3 +551,33 @@ class VideoExportTestCase(VideoDescriptorTestBase):
xml = self.descriptor.definition_to_xml(None)
expected = '<video url_name="SampleProblem"/>\n'
self.assertEquals(expected, etree.tostring(xml, pretty_print=True))
class VideoCdnTest(unittest.TestCase):
"""
Tests for Video CDN.
"""
@patch('requests.get')
def test_get_video_success(self, cdn_response):
"""
Test successful CDN request.
"""
original_video_url = "http://www.original_video.com/original_video.mp4"
cdn_response_video_url = "http://www.cdn_video.com/cdn_video.mp4"
cdn_response_content = '{{"sources":["{cdn_url}"]}}'.format(cdn_url=cdn_response_video_url)
cdn_response.return_value=Mock(status_code=200, content=cdn_response_content)
fake_cdn_url = 'http://fake_cdn.com/'
self.assertEqual(
get_video_from_cdn(fake_cdn_url, original_video_url),
cdn_response_video_url
)
@patch('requests.get')
def test_get_no_video_exists(self, cdn_response):
"""
Test if no alternative video in CDN exists.
"""
original_video_url = "http://www.original_video.com/original_video.mp4"
cdn_response.return_value=Mock(status_code=404)
fake_cdn_url = 'http://fake_cdn.com/'
self.assertIsNone(get_video_from_cdn(fake_cdn_url, original_video_url))
......@@ -36,7 +36,7 @@ from xmodule.editing_module import TabsEditingDescriptor
from xmodule.raw_module import EmptyDataRawDescriptor
from xmodule.xml_module import is_pointer_tag, name_to_pathname, deserialize_field
from .video_utils import create_youtube_string
from .video_utils import create_youtube_string, get_video_from_cdn
from .video_xfields import VideoFields
from .video_handlers import VideoStudentViewHandlers, VideoStudioViewHandlers
......@@ -93,12 +93,25 @@ class VideoModule(VideoFields, VideoStudentViewHandlers, XModule):
]}
js_module_name = "Video"
def get_html(self):
track_url = None
download_video_link = None
transcript_download_format = self.transcript_download_format
sources = filter(None, self.html5_sources)
# If the user comes from China use China CDN for html5 videos.
# 'CN' is China ISO 3166-1 country code.
# Video caching is disabled for Studio. User_location is always None in Studio.
# CountryMiddleware disabled for Studio.
cdn_url = getattr(settings, 'VIDEO_CDN_URL', {}).get(self.system.user_location)
if getattr(self, 'video_speed_optimizations', True) and cdn_url:
for index, source_url in enumerate(sources):
new_url = get_video_from_cdn(cdn_url, source_url)
if new_url:
sources[index] = new_url
if self.download_video:
if self.source:
download_video_link = self.source
......
"""
Module containts utils specific for video_module but not for transcripts.
"""
import json
import logging
import urllib
import requests
from requests.exceptions import RequestException
log = logging.getLogger(__name__)
def create_youtube_string(module):
......@@ -23,3 +31,41 @@ def create_youtube_string(module):
in zip(youtube_speeds, youtube_ids)
if pair[1]
])
def get_video_from_cdn(cdn_base_url, original_video_url):
"""
Get video URL from CDN.
`original_video_url` is the existing video url.
Currently `cdn_base_url` equals 'http://api.xuetangx.com/edx/video?s3_url='
Example of CDN outcome:
{
"sources":
[
"http://cm12.c110.play.bokecc.com/flvs/ca/QxcVl/u39EQbA0Ra-20.mp4",
"http://bm1.42.play.bokecc.com/flvs/ca/QxcVl/u39EQbA0Ra-20.mp4"
],
"s3_url": "http://s3.amazonaws.com/BESTech/CS169/download/CS169_v13_w5l2s3.mp4"
}
where `s3_url` is requested original video url and `sources` is the list of
alternative links.
"""
if not cdn_base_url:
return None
request_url = cdn_base_url + urllib.quote(original_video_url)
try:
cdn_response = requests.get(request_url, timeout=0.5)
except RequestException as err:
log.warning("Error requesting from CDN server at %s", request_url)
log.exception(err)
return None
if cdn_response.status_code == 200:
cdn_content = json.loads(cdn_response.content)
return cdn_content['sources'][0]
else:
return None
......@@ -1244,7 +1244,7 @@ class ModuleSystem(MetricsMixin, ConfigurableFragmentWrapper, Runtime): # pylin
cache=None, can_execute_unsafe_code=None, replace_course_urls=None,
replace_jump_to_id_urls=None, error_descriptor_class=None, get_real_user=None,
field_data=None, get_user_role=None, rebind_noauth_module_to_user=None,
**kwargs):
user_location=None, **kwargs):
"""
Create a closure around the system environment.
......@@ -1340,6 +1340,7 @@ class ModuleSystem(MetricsMixin, ConfigurableFragmentWrapper, Runtime): # pylin
self.xmodule_instance = None
self.get_real_user = get_real_user
self.user_location = user_location
self.get_user_role = get_user_role
self.descriptor_runtime = descriptor_runtime
......
......@@ -16,8 +16,10 @@ locales:
- da # Danish
- de_DE # German (Germany)
- el # Greek
- en@lolcat # LOLCAT English
- en@pirate # Pirate English
# Don't pull these until we figure out why pages randomly display in these locales,
# when the user's browser is in English and the user is not logged in.
# - en@lolcat # LOLCAT English
# - en@pirate # Pirate English
- es_419 # Spanish (Latin America)
- es_AR # Spanish (Argentina)
- es_EC # Spanish (Ecuador)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
# #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-#
# edX community translations have been downloaded from LOLCAT English (http://www.transifex.com/projects/p/edx-platform/language/en@lolcat/).
# Copyright (C) 2014 EdX
# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
#
# Translators:
# Marco Morales, 2014
# Sarina Canelake <sarina@edx.org>, 2014
# #-#-#-#-# djangojs-studio.po (edx-platform) #-#-#-#-#
# edX translation file.
# Copyright (C) 2014 EdX
# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
#
# Translators:
# #-#-#-#-# underscore.po (edx-platform) #-#-#-#-#
# edX translation file
# Copyright (C) 2014 edX
# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
#
# Translators:
# #-#-#-#-# underscore-studio.po (edx-platform) #-#-#-#-#
# edX translation file
# Copyright (C) 2014 edX
# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: edx-platform\n"
"Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n"
"POT-Creation-Date: 2014-06-19 00:15-0400\n"
"PO-Revision-Date: 2014-06-19 04:17+0000\n"
"Last-Translator: Sarina Canelake <sarina@edx.org>\n"
"Language-Team: LOLCAT English (http://www.transifex.com/projects/p/edx-platform/language/en@lolcat/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 1.3\n"
"Language: en@lolcat\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: cms/static/coffee/src/views/tabs.js
#: cms/static/js/views/course_info_update.js
#: cms/static/js/views/modals/edit_xblock.js
#: common/static/coffee/src/discussion/utils.js
msgid "OK"
msgstr "K"
#: cms/static/coffee/src/views/tabs.js cms/static/js/base.js
#: cms/static/js/views/asset.js cms/static/js/views/baseview.js
#: cms/static/js/views/course_info_update.js
#: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js
#: cms/static/js/views/modals/base_modal.js
#: lms/static/admin/js/admin/DateTimeShortcuts.js
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Cancel"
msgstr "CANCL"
#: cms/static/js/base.js lms/static/js/verify_student/photocapture.js
msgid "This link will open in a new browser window/tab"
msgstr "DIS LYNK WILL OPEN IN A NEW BROWSR WINDOW/TAB"
#: cms/static/js/views/asset.js cms/static/js/views/show_textbook.js
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
#: cms/templates/js/course_grade_policy.underscore
#: cms/templates/js/show-textbook.underscore
msgid "Delete"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Show Annotations"
msgstr "SHOW ANNOTASHUNS"
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Hide Annotations"
msgstr "HIDE ANNOTASHUNS"
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Expand Instructions"
msgstr "XPAND INSTRUCSHUNS"
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Collapse Instructions"
msgstr "COLLAPSE INSTRUCSHUNS"
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Commentary"
msgstr "COMMENTARY"
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Reply to Annotation"
msgstr "REPLI 2 ANNOTASHUN"
#. Translators: %(earned)s is the number of points earned. %(total)s is the
#. total number of points (examples: 0/1, 1/1, 2/3, 5/10). The total number of
#. points will always be at least 1. We pluralize based on the total number of
#. points (example: 0/1 point; 1/2 points);
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "(%(earned)s/%(possible)s point)"
msgid_plural "(%(earned)s/%(possible)s points)"
msgstr[0] "(%(earned)s/%(possible)s POINT)"
msgstr[1] "(%(earned)s/%(possible)s POINTZ)"
#. Translators: %(num_points)s is the number of points possible (examples: 1,
#. 3, 10). There will always be at least 1 point possible.;
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "(%(num_points)s point possible)"
msgid_plural "(%(num_points)s points possible)"
msgstr[0] "(%(num_points)s POINT POSIBL)"
msgstr[1] "(%(num_points)s POINTZ POSIBL)"
#: common/lib/xmodule/xmodule/js/src/capa/display.js
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Answer:"
msgstr "ANSER:"
#. Translators: the word Answer here refers to the answer to a problem the
#. student must solve.;
#: common/lib/xmodule/xmodule/js/src/capa/display.js
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Hide Answer"
msgstr "HIDE TEH ANSER"
#. Translators: the word Answer here refers to the answer to a problem the
#. student must solve.;
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Show Answer"
msgstr "SHOW TEH ANSER"
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Reveal Answer"
msgstr "REVEEL TEH ANSER"
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Answer hidden"
msgstr "TEH ANSER IZ HIDED"
#. Translators: the word unanswered here is about answering a problem the
#. student must solve.;
#: common/lib/xmodule/xmodule/js/src/capa/display.js
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "unanswered"
msgstr "U HAS NOT ANSWERD DIS"
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Status: unsubmitted"
msgstr "STATUS: U HAS NOT SUBMITTD DIS"
#. Translators: A "rating" is a score a student gives to indicate how well
#. they feel they were graded on this problem
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "You need to pick a rating before you can submit."
msgstr "U NEED 2 PIK A RATIN B4 U CAN HAZ SUBMIT."
#. Translators: this message appears when transitioning between openended
#. grading
#. types (i.e. self assesment to peer assessment). Sometimes, if a student
#. did not perform well at one step, they cannot move on to the next one.
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Your score did not meet the criteria to move to the next step."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Submit"
msgstr "SUBMIT"
#. Translators: one clicks this button after one has finished filling out the
#. grading
#. form for an openended assessment
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Submit assessment"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"Your response has been submitted. Please check back later for your grade."
msgstr ""
#. Translators: this button is clicked to submit a student's rating of
#. an evaluator's assessment
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Submit post-assessment"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Answer saved, but not yet submitted."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"Please confirm that you wish to submit your work. You will not be able to "
"make any changes after submitting."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"You are trying to upload a file that is too large for our system. Please "
"choose a file under 2MB or paste a link to it into the answer box."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"Are you sure you want to remove your previous response to this question?"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Moved to next step."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"File uploads are required for this question, but are not supported in your "
"browser. Try the newest version of Google Chrome. Alternatively, if you have"
" uploaded the image to another website, you can paste a link to it into the "
"answer box."
msgstr ""
#. Translators: "Show Question" is some text that, when clicked, shows a
#. question's
#. content that had been hidden
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Show Question"
msgstr "SHOW TEH QUESHUN"
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Hide Question"
msgstr "HIDE TEH QUESHUN"
#: common/lib/xmodule/xmodule/js/src/sequence/display.js
msgid ""
"Sequence error! Cannot navigate to tab %(tab_name)s in the current "
"SequenceModule. Please contact the course staff."
msgstr ""
"SEQUENCE ERROR! WEZ CANT NAVIGATE 2 TAB %(tab_name)s IN TEH CURENT "
"SEQUENCEMODULE. PLZ CONTACT TEH COURSE STAFF."
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Volume"
msgstr "VOLUM"
#. Translators: Volume level equals 0%.
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Muted"
msgstr "MUTED"
#. Translators: Volume level in range ]0,20]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Very low"
msgstr "BERY LOW"
#. Translators: Volume level in range ]20,40]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Low"
msgstr "LOW"
#. Translators: Volume level in range ]40,60]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Average"
msgstr "AVERAGE"
#. Translators: Volume level in range ]60,80]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Loud"
msgstr "LOWD"
#. Translators: Volume level in range ]80,99]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Very loud"
msgstr "BERY LOWD"
#. Translators: Volume level equals 100%.
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Maximum"
msgstr "MAXYMUM"
#: common/lib/xmodule/xmodule/js/src/video/02_html5_video.js
msgid ""
"VideoPlayer: Element corresponding to the given selector was not found."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/02_html5_video.js
msgid "This browser cannot play .mp4, .ogg, or .webm files."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/02_html5_video.js
msgid "Try using a different browser, such as Google Chrome."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Video slider"
msgstr "VIDEO SLIDR"
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Pause"
msgstr "PAWS"
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Play"
msgstr "PULAY"
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Fill browser"
msgstr "FILL TEH BROWSR"
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Exit full browser"
msgstr "XIT FULL BROWSR"
#: common/lib/xmodule/xmodule/js/src/video/05_video_quality_control.js
msgid "HD on"
msgstr "HD ON"
#: common/lib/xmodule/xmodule/js/src/video/05_video_quality_control.js
msgid "HD off"
msgstr "HD OFF"
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "Video position"
msgstr "VIDEO POSISHUN"
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "Video ended"
msgstr "VIDEO ENDD"
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "%(value)s hour"
msgid_plural "%(value)s hours"
msgstr[0] "%(value)s HOUR"
msgstr[1] "%(value)s HOURZ"
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "%(value)s minute"
msgid_plural "%(value)s minutes"
msgstr[0] "%(value)s MINIT"
msgstr[1] "%(value)s MINITS"
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "%(value)s second"
msgid_plural "%(value)s seconds"
msgstr[0] "%(value)s SECUND"
msgstr[1] "%(value)s SECUNDZ"
#: common/lib/xmodule/xmodule/js/src/video/09_video_caption.js
msgid "Caption will be displayed when "
msgstr "CAPSHUN WILL BE DISPULAYD WHEN"
#: common/lib/xmodule/xmodule/js/src/video/09_video_caption.js
msgid "Turn on captions"
msgstr "TURN ON CAPSHUNS"
#: common/lib/xmodule/xmodule/js/src/video/09_video_caption.js
msgid "Turn off captions"
msgstr "TURN OFF CAPSHUNS"
#: common/static/coffee/src/discussion/discussion_module_view.js
#: common/static/coffee/src/discussion/discussion_module_view.js
msgid "Hide Discussion"
msgstr "HIDE TEH DISCUSHUN"
#: common/static/coffee/src/discussion/discussion_module_view.js
msgid "Show Discussion"
msgstr "SHOW DISCUSHUN"
#: common/static/coffee/src/discussion/discussion_module_view.js
#: common/static/coffee/src/discussion/discussion_module_view.js
#: common/static/coffee/src/discussion/utils.js
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
#: common/static/coffee/src/discussion/views/discussion_user_profile_view.js
#: common/static/coffee/src/discussion/views/response_comment_view.js
msgid "Sorry"
msgstr "OMG!1!! SRY SRY!1!"
#: common/static/coffee/src/discussion/discussion_module_view.js
msgid "We had some trouble loading the discussion. Please try again."
msgstr ""
"SRY WE HAZ SUM TRUBLE LOADIN TEH DISCUSHUN D: CAN U HAS ANUTHER TRI PLZ? "
"THANKS U!1!"
#: common/static/coffee/src/discussion/discussion_module_view.js
msgid ""
"We had some trouble loading the threads you requested. Please try again."
msgstr ""
"SRY BUT WE HAZ SUM TRUBLE LOADIN TEH FWEADZ U REQUESTD. CAN U HAS ANOTHER "
"TRI PLZ??"
#: common/static/coffee/src/discussion/utils.js
msgid "Loading content"
msgstr "LOADIN CONTENT"
#: common/static/coffee/src/discussion/utils.js
msgid ""
"We had some trouble processing your request. Please ensure you have copied "
"any unsaved work and then reload the page."
msgstr ""
"SRY BUT WE HAZ SUM TRUBLE PROCESSIN UR REQUEST. PLZ MAKE SURE U HAS COPYD NE"
" UNSAVD WORK AN DEN PLZ RELOAD TEH PAEG. THANKS U!11!"
#: common/static/coffee/src/discussion/utils.js
msgid "We had some trouble processing your request. Please try again."
msgstr ""
"SRY!1! WE HAZ SUM TRUBLE PROCESIN UR REQUEST. CAN U PLZZZZ HAS ANUTHAR "
"TRI!?1?! K THX!!"
#: common/static/coffee/src/discussion/utils.js
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
#: common/static/coffee/src/discussion/views/new_post_view.js
#: common/static/coffee/src/discussion/views/new_post_view.js
#: common/static/coffee/src/discussion/views/new_post_view.js
msgid "…"
msgstr "..."
#: common/static/coffee/src/discussion/views/discussion_content_view.js
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "Close"
msgstr "CLOSE"
#: common/static/coffee/src/discussion/views/discussion_content_view.js
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "Open"
msgstr "OPEN"
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "remove vote"
msgstr "REMOOV VOAT"
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "vote"
msgstr "VOAT"
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "vote (click to remove your vote)"
msgid_plural "votes (click to remove your vote)"
msgstr[0] ""
msgstr[1] ""
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "vote (click to vote)"
msgid_plural "votes (click to vote)"
msgstr[0] ""
msgstr[1] ""
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "Load more"
msgstr "LOAD MOAR"
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "Loading more threads"
msgstr "LOADIN MOAR FWEADZ"
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "We had some trouble loading more threads. Please try again."
msgstr ""
"SRY WE HAZ SUM TRUBLE LOADIN MOAR FWEADZ D: CAN U HAS ANUTHAR TRI PLZ?? "
"THANKS U!1!"
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "%(unread_count)s new comment"
msgid_plural "%(unread_count)s new comments"
msgstr[0] "%(unread_count)s NEW COMMENT"
msgstr[1] "%(unread_count)s NEW COMMENTZ"
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "Loading thread list"
msgstr "LOADIN FWEADZ LIST"
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid ""
"No results found for %(original_query)s. Showing results for "
"%(suggested_query)s."
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Click to remove report"
msgstr "CLIK 2 REMOOV TEH REPORT"
#. Translators: The text between start_sr_span and end_span is not shown
#. in most browsers but will be read by screen readers.
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "Misuse Reported%(start_sr_span)s, click to remove report%(end_span)s"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "Report Misuse"
msgstr "REPORT BAD USE"
#. Translators: The text between start_sr_span and end_span is not shown
#. in most browsers but will be read by screen readers.
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Pinned%(start_sr_span)s, click to unpin%(end_span)s"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Click to unpin"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Pinned"
msgstr "PINND"
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Pin Thread"
msgstr "PIN DIS FWEAD"
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid ""
"The thread you selected has been deleted. Please select another thread."
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "We had some trouble loading responses. Please reload the page."
msgstr ""
"SRY!!1! WE HAZ SUM TRUBLE LOADIN RESPONSEZ D: CAN U HAS ANUTHAR TRI OV "
"RELOADIN TEH PAEG?? THANK U!1!"
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "We had some trouble loading more responses. Please try again."
msgstr ""
"SRY BUT WE HAZ SUM TRUBLE LOADIN RESPONSEZ D: CAN U HAS ANUTHAR TRI PLZ?? "
"THANKS U!1!"
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "%(numResponses)s response"
msgid_plural "%(numResponses)s responses"
msgstr[0] "%(numResponses)s RESPONSE"
msgstr[1] "%(numResponses)s RESPONSEZ"
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Showing all responses"
msgstr "SHOWIN ALL TEH RESPONSEZ"
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Showing first response"
msgid_plural "Showing first %(numResponses)s responses"
msgstr[0] "SHOWIN TEH FURST RESPONSE"
msgstr[1] "SHOWIN TEH FURST %(numResponses)s RESPONSEZ"
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Load all responses"
msgstr "LOAD ALL RESPONSEZ"
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Load next %(numResponses)s responses"
msgstr "LOAD NEXT %(numResponses)s RESPONSEZ"
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Are you sure you want to delete this post?"
msgstr "O HAI. R U SHUR U WANT 2 DELET DIS POST??"
#: common/static/coffee/src/discussion/views/discussion_user_profile_view.js
msgid "We had some trouble loading the page you requested. Please try again."
msgstr ""
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
msgid "anonymous"
msgstr "ANYMOUZ"
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "staff"
msgstr "STAFF"
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "Community TA"
msgstr "COMUNITY TA"
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "Misuse Reported, click to remove report"
msgstr "MISUSE WUZ REPORTD, CLIK 2 REMOOV REPORT"
#: common/static/coffee/src/discussion/views/response_comment_view.js
msgid "Are you sure you want to delete this comment?"
msgstr "O HAI. R U SHUR U WANT 2 DELET DIS COMMENT??"
#: common/static/coffee/src/discussion/views/response_comment_view.js
msgid "We had some trouble deleting this comment. Please try again."
msgstr ""
"SRY!1! WE HAZ SUM TRUBLE DELETIN DIS COMMENT. CAN U PLZZZZ HAS ANUTHAR "
"TRI!?1?! K THX!!"
#: common/static/coffee/src/discussion/views/thread_response_view.js
msgid "Are you sure you want to delete this response?"
msgstr "O HAI. R U SHUR U WANT 2 DELET DIS RESPONSE??"
#: common/static/js/capa/drag_and_drop/base_image.js
msgid "Drop target image"
msgstr ""
#: common/static/js/capa/drag_and_drop/draggable_events.js
msgid "dragging out of slider"
msgstr ""
#: common/static/js/capa/drag_and_drop/draggable_events.js
msgid "dragging"
msgstr ""
#: common/static/js/capa/drag_and_drop/draggable_events.js
msgid "dropped in slider"
msgstr ""
#: common/static/js/capa/drag_and_drop/draggable_events.js
msgid "dropped on target"
msgstr ""
#. Translators: %s will be a time quantity, such as "4 minutes" or "1 day"
#: common/static/js/src/jquery.timeago.locale.js
msgid "%s ago"
msgstr "%s AGO"
#. Translators: %s will be a time quantity, such as "4 minutes" or "1 day"
#: common/static/js/src/jquery.timeago.locale.js
msgid "%s from now"
msgstr "%s FRUM NAO"
#: common/static/js/src/jquery.timeago.locale.js
msgid "less than a minute"
msgstr "LES DAN A MINIT"
#: common/static/js/src/jquery.timeago.locale.js
msgid "about a minute"
msgstr "BOUT A MINIT"
#: common/static/js/src/jquery.timeago.locale.js
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] "%d MINIT"
msgstr[1] "%d MINITS"
#: common/static/js/src/jquery.timeago.locale.js
msgid "about an hour"
msgstr "BOUT A HOUR"
#: common/static/js/src/jquery.timeago.locale.js
msgid "about %d hour"
msgid_plural "about %d hours"
msgstr[0] "BOUT %d HOURE"
msgstr[1] "BOUT %d HOURZ"
#: common/static/js/src/jquery.timeago.locale.js
msgid "a day"
msgstr "A DAI"
#: common/static/js/src/jquery.timeago.locale.js
msgid "%d day"
msgid_plural "%d days"
msgstr[0] "%d DAI"
msgstr[1] "%d DAIS"
#: common/static/js/src/jquery.timeago.locale.js
msgid "about a month"
msgstr "BOUT A MONF"
#: common/static/js/src/jquery.timeago.locale.js
msgid "%d month"
msgid_plural "%d months"
msgstr[0] "%d MONF"
msgstr[1] "%d MONFZ"
#: common/static/js/src/jquery.timeago.locale.js
msgid "about a year"
msgstr "BOUT A YER"
#: common/static/js/src/jquery.timeago.locale.js
msgid "%d year"
msgid_plural "%d years"
msgstr[0] "%d YER"
msgstr[1] "%d YERZ"
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "User"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Annotation"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Start"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "End"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "#Replies"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Date posted"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "More"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "My Notes"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Instructor"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Public"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Search"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Users"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Tags"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Annotation Text"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
#: cms/templates/js/metadata-dict-entry.underscore
#: cms/templates/js/metadata-file-uploader-entry.underscore
#: cms/templates/js/metadata-list-entry.underscore
#: cms/templates/js/metadata-number-entry.underscore
#: cms/templates/js/metadata-option-entry.underscore
#: cms/templates/js/metadata-string-entry.underscore
#: cms/templates/js/mock/mock-xmodule-editor.underscore
#: cms/templates/js/mock/mock-xmodule-settings-only-editor.underscore
#: cms/templates/js/video/metadata-translations-entry.underscore
msgid "Clear"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Text"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Video"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Image"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Reply"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: cms/templates/js/show-textbook.underscore
#: cms/templates/js/mock/mock-container-page.underscore
msgid "Edit"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Tags:"
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid "Available %s"
msgstr "AVAILABBABLE %s"
#: lms/static/admin/js/SelectFilter2.js
msgid ""
"This is the list of available %s. You may choose some by selecting them in "
"the box below and then clicking the \"Choose\" arrow between the two boxes."
msgstr ""
"DIS AR TEH LIST OV AVAILABLE %s. PLZ CHOOSE SUM BY SELECTIN DEM IN DA BOX "
"BELOW AN DEN CLICKIN TEH \"CHOOSE\" ARROW TWEEN TEH 2 BOXEZ."
#: lms/static/admin/js/SelectFilter2.js
msgid "Type into this box to filter down the list of available %s."
msgstr "TYPE IN2 DIS BOX 2 FILTR TEH LIST OV AVAILABLE %s"
#: lms/static/admin/js/SelectFilter2.js
msgid "Filter"
msgstr "FILTR"
#: lms/static/admin/js/SelectFilter2.js
msgid "Choose all"
msgstr "CHUSE ALL"
#: lms/static/admin/js/SelectFilter2.js
msgid "Click to choose all %s at once."
msgstr "CLIK 2 CHUSE ALL %s AT ONE TIEM"
#: lms/static/admin/js/SelectFilter2.js
msgid "Choose"
msgstr "CHUSE"
#: lms/static/admin/js/SelectFilter2.js
msgid "Remove"
msgstr "REMOOV"
#: lms/static/admin/js/SelectFilter2.js
msgid "Chosen %s"
msgstr "CHUSED %s"
#: lms/static/admin/js/SelectFilter2.js
msgid ""
"This is the list of chosen %s. You may remove some by selecting them in the "
"box below and then clicking the \"Remove\" arrow between the two boxes."
msgstr ""
"DIS AR TEH LIST OV CHUSED %s. U CUD REMOOV SUM BY SELECTIN DEM IN DA BOX "
"BELOW AN DEN CLICKIN TEH \"REMOOV\" ARROW TWEEN TEH 2 BOXEZ."
#: lms/static/admin/js/SelectFilter2.js
msgid "Remove all"
msgstr "REMOOV ALL"
#: lms/static/admin/js/SelectFilter2.js
msgid "Click to remove all chosen %s at once."
msgstr "CLIK 2 REMOOV ALL CHUSED %s AT ONE TIEM."
#: lms/static/admin/js/actions.js lms/static/admin/js/actions.min.js
msgid "%(sel)s of %(cnt)s selected"
msgid_plural "%(sel)s of %(cnt)s selected"
msgstr[0] "%(sel)s OV %(cnt)s SELECTED"
msgstr[1] "%(sel)s OV %(cnt)s SELECTD"
#: lms/static/admin/js/actions.js lms/static/admin/js/actions.min.js
msgid ""
"You have unsaved changes on individual editable fields. If you run an "
"action, your unsaved changes will be lost."
msgstr ""
"O NOES! U HAS UNSAVD CHANGEZ ON INDIVIDUAL EDITABLE FEILDS AN IF U RUN A "
"ACTSHUN, UR UNSAVD CHANGEZ WILL B DISAPPEARD!!1!"
#: lms/static/admin/js/actions.js lms/static/admin/js/actions.min.js
msgid ""
"You have selected an action, but you haven't saved your changes to "
"individual fields yet. Please click OK to save. You'll need to re-run the "
"action."
msgstr ""
"U HAS SELECTD A ACTSHUN BUT U HASNT SAVD UR CHANGEZ 2 INDIVIDUAL FEILDS "
"YET!1! PLZ CLIK OK 2 SAV. ULL NEED 2 RERUN TEH ACTSHUN D: SRY D: D:"
#: lms/static/admin/js/actions.js lms/static/admin/js/actions.min.js
msgid ""
"You have selected an action, and you haven't made any changes on individual "
"fields. You're probably looking for the Go button rather than the Save "
"button."
msgstr ""
"U HAS SELECTD A ACTSHUN AN U HASNT MADE NE CHANGEZ ON INDIVIDUAL FEILDS!1! "
"UR PROLLY LOOKIN 4 TEH GO BUTTON AN NOT TEH SAVE BUTTON."
#. Translators: the names of months, keep the pipe (|) separators.
#: lms/static/admin/js/calendar.js lms/static/admin/js/dateparse.js
msgid ""
"January|February|March|April|May|June|July|August|September|October|November|December"
msgstr ""
"JANUAREH|FEBUAREH|MARCHE|APRL|MAI|JUN|JULAI|AUGUS|SEPTEMBR|OCTOBR|NOVEMBR|DECMBR"
#. Translators: abbreviations for days of the week, keep the pipe (|)
#. separators.
#: lms/static/admin/js/calendar.js
msgid "S|M|T|W|T|F|S"
msgstr "S|M|T|W|T|F|S"
#: lms/static/admin/js/collapse.js lms/static/admin/js/collapse.js.c
#: lms/static/admin/js/collapse.min.js
msgid "Show"
msgstr "SHOW"
#: lms/static/admin/js/collapse.js lms/static/admin/js/collapse.min.js
msgid "Hide"
msgstr "HIDE"
#. Translators: the names of days, keep the pipe (|) separators.
#: lms/static/admin/js/dateparse.js
msgid "Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday"
msgstr "SUMDAI|MUNDAI|TUSDAI|WENDSDAI|FURSDAI|FRYDAI|SATERDAI"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Now"
msgstr "NAO"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Clock"
msgstr "CLOCK"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Choose a time"
msgstr "CHUSE A TIEM"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Midnight"
msgstr "MIDNITE"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "6 a.m."
msgstr "6 AM"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Noon"
msgstr "NOOON"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Today"
msgstr "2DAY"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Calendar"
msgstr "CALENDAR"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Yesterday"
msgstr "YESTURDAI"
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Tomorrow"
msgstr "2MORROW"
#: lms/static/coffee/src/calculator.js
msgid "Open Calculator"
msgstr "OPEN CALCULATOW"
#: lms/static/coffee/src/calculator.js
msgid "Close Calculator"
msgstr "CLOSE CALCULATOW"
#: lms/static/coffee/src/customwmd.js
msgid "Preview"
msgstr "PREVIEW"
#: lms/static/coffee/src/customwmd.js
msgid "Post body"
msgstr "POST BODI"
#. Translators: "Distribution" refers to a grade distribution. This error
#. message appears when there is an error getting the data on grade
#. distribution.;
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "Error fetching distribution."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "Unavailable metric display."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "Error fetching grade distributions."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "Last Updated: <%= timestamp %>"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "<%= num_students %> students scored."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "Loading..."
msgstr "LOADIN... PLZ WAIT THX"
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "Error getting student list."
msgstr "O NOES!!1! THAR WUZ ERROR GETTIN TEH STUDENT LIST D:"
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "Error retrieving grading configuration."
msgstr "O NOES!!1! THAR WUZ ERROR GETTIN TEH GRADIN CONFIGUASHUN D:"
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "Error generating grades. Please try again."
msgstr ""
"O NOES!!1! THAR WUZ ERROR GENERATIN TEH GRADEZ D: U CAN HAS ANUTHR TRI, "
"PLZ??"
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "File Name"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid ""
"Links are generated on demand and expire within 5 minutes due to the "
"sensitive nature of student information."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Username"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Email"
msgstr "EMAIL"
#: lms/static/coffee/src/instructor_dashboard/membership.js
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Revoke access"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Enter username or email"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Please enter a username or email."
msgstr ""
#. Translators: A rolename appears this sentence. A rolename is something like
#. "staff" or "beta tester".;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error fetching list for role"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error changing user's permissions."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Could not find a user with username or email address '<%= identifier %>'."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Error: User '<%= username %>' has not yet activated their account. Users "
"must create and activate their accounts before they can be assigned a role."
msgstr ""
"ERROR: USR '<%= username %>' HAZ NOT ACTUVATD DER ACCOUNT. USERZ MUST CREATE"
" AN ACTIVATE DER ACCOUNTZ B4 DEY CAN B ASSIGND A ROLE, WE IZ SRY BOUT DAT."
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error: You cannot remove yourself from the Instructor group!"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error adding/removing users as beta testers."
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users were successfully added as beta testers:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users were successfully removed as beta testers:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users were not added as beta testers:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users were not removed as beta testers:"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Users must create and activate their account before they can be promoted to "
"beta tester."
msgstr ""
"USRZ MUST CREATE AN ACTIVATE DER ACCOUNTZ B4 DEY CAN B PROMOTED 2 BETA "
"TESTR, SRY BOUT DAT."
#. Translators: A list of identifiers (which are email addresses and/or
#. usernames) appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Could not find users associated with the following identifiers:"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error enrolling/unenrolling users."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "The following email addresses and/or usernames are invalid:"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Successfully enrolled and sent email to the following users:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Successfully enrolled the following users:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Successfully sent enrollment emails to the following users. They will be "
"allowed to enroll once they register:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users will be allowed to enroll once they register:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Successfully sent enrollment emails to the following users. They will be "
"enrolled once they register:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users will be enrolled once they register:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Emails successfully sent. The following users are no longer enrolled in the "
"course:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "The following users are no longer enrolled in the course:"
msgstr ""
#. Translators: A list of users appears after this sentence. This situation
#. arises when a staff member tries to unenroll a user who is not currently
#. enrolled in this course.;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"These users were not affiliated with the course so could not be unenrolled:"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "Your message must have a subject."
msgstr "UR MSG MUST HAS A SUBJECT, SRY"
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "Your message cannot be blank."
msgstr "UR MSG NO CAN B BLANK, SRY"
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "Your email was successfully queued for sending."
msgstr "YAYYY!1!! SUCCESS!1! UR EMAIL WUZ QUEUD 4 SENDIN!!1!"
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid ""
"You are about to send an email titled '<%= subject %>' to yourself. Is this "
"OK?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid ""
"You are about to send an email titled '<%= subject %>' to everyone who is "
"staff or instructor on this course. Is this OK?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid ""
"You are about to send an email titled '<%= subject %>' to ALL (everyone who "
"is enrolled in this course as student, staff, or instructor). Is this OK?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid ""
"Your email was successfully queued for sending. Please note that for large "
"classes, it may take up to an hour (or more, if other courses are "
"simultaneously sending email) to send all emails."
msgstr ""
"YAYYY!1!! SUCCESS!1! UR EMAIL WUZ QUEUD 4 SENDIN!!1! PLZ NOTE DAT 4 LARGE "
"CLASSEZ, IT CULD TAKE UP 2 AN HOUR (OR MOAR, IF ODDER COURSEZ R SENDIN EMAIL"
" AT TEH SAME TYME) 2 SEND ALL TEH EMAILS."
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "Error sending email."
msgstr "O NOES!!1! THAR WUZ ERROR SENDIN TEH EMAIL D:"
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "There is no email history for this course."
msgstr "THAR IZ NO EMAIL HIZTORI 4 DIS COURSE D: SRY!1!"
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "There was an error obtaining email task history for this course."
msgstr "THAR WUZ ERROR OBTANIN EMAIL TASK HISTORI 4 DIS COURSE D: SRY!1!"
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Please enter a student email address or username."
msgstr "PLZ ENTER A STUDENT EMAIL ADDRESS OR USRNAYM"
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error getting student progress url for '<%= student_id %>'. Make sure that "
"the student identifier is spelled correctly."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Please enter a problem location."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Success! Problem attempts reset for problem '<%= problem_id %>' and student "
"'<%= student_id %>'."
msgstr ""
"YAYYY!1!! SUCCESS!1! PROBLM ATTEMPTZ WUZ RESET 4 PROBLM '<%= problem_id %>' "
"AN STUDYNT '<%= student_id %>'."
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error resetting problem attempts for problem '<%= problem_id %>' and student"
" '<%= student_id %>'. Make sure that the problem and student identifiers are"
" complete and correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Delete student '<%= student_id %>'s state on problem '<%= problem_id %>'?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error deleting student '<%= student_id %>'s state on problem '<%= problem_id"
" %>'. Make sure that the problem and student identifiers are complete and "
"correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Module state successfully deleted."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Started rescore problem task for problem '<%= problem_id %>' and student "
"'<%= student_id %>'. Click the 'Show Background Task History for Student' "
"button to see the status of the task."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error starting a task to rescore problem '<%= problem_id %>' for student "
"'<%= student_id %>'. Make sure that the the problem and student identifiers "
"are complete and correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error getting task history for problem '<%= problem_id %>' and student '<%= "
"student_id %>'. Make sure that the problem and student identifiers are "
"complete and correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Reset attempts for all students on problem '<%= problem_id %>'?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Successfully started task to reset attempts for problem '<%= problem_id %>'."
" Click the 'Show Background Task History for Problem' button to see the "
"status of the task."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error starting a task to reset attempts for all students on problem '<%= "
"problem_id %>'. Make sure that the problem identifier is complete and "
"correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Rescore problem '<%= problem_id %>' for all students?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Successfully started task to rescore problem '<%= problem_id %>' for all "
"students. Click the 'Show Background Task History for Problem' button to see"
" the status of the task."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error starting a task to rescore problem '<%= problem_id %>'. Make sure that"
" the problem identifier is complete and correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Error listing task history for this student and problem."
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task Type"
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task inputs"
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task ID"
msgstr ""
#. Translators: a "Requester" is a username that requested a task such as
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Requester"
msgstr ""
#. Translators: A timestamp of when a task (eg, sending email) was submitted
#. appears after this
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Submitted"
msgstr "SUBMITTD"
#. Translators: The length of a task (eg, sending email) in seconds appears
#. this
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Duration (sec)"
msgstr ""
#. Translators: The state (eg, "In progress") of a task (eg, sending email)
#. appears after this.
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "State"
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task Status"
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task Progress"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Grades saved. Fetching the next submission to grade."
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Problem Name"
msgstr "PROBLM NAYM"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Graded"
msgstr "GRADYD"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Available to Grade"
msgstr "AVAILABL 2 GRADE"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Required"
msgstr "REQUIRD"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Progress"
msgstr "PROGRES"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Back to problem list"
msgstr "BAK 2 PROBLM LIST"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Try loading again"
msgstr "O HAI, U CAN PLZ TRI LOADIN AGAIN?! KTHX"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "<%= num %> available "
msgstr "<%= num %> AVAILABL"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "<%= num %> graded "
msgstr "<%= num %> GRADYD"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "<%= num %> more needed to start ML"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Re-check for submissions"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "System got into invalid state: <%= state %>"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "System got into invalid state for submission: "
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "(Hide)"
msgstr "(HIDE)"
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "(Show)"
msgstr "(SHOW)"
#: lms/static/js/Markdown.Editor.js
msgid "Insert Hyperlink"
msgstr ""
#. Translators: Please keep the quotation marks (") around this text
#: lms/static/js/Markdown.Editor.js lms/static/js/Markdown.Editor.js.c
msgid "\"optional title\""
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Insert Image (upload file or type url)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Markdown Editing Help"
msgstr "MARKDOWN EDITIN HALP!11!!1! IF U NEEDZ IT!1!"
#: lms/static/js/Markdown.Editor.js
msgid "Bold (Ctrl+B)"
msgstr "BOLD IZ (CTRL+B)"
#: lms/static/js/Markdown.Editor.js
msgid "Italic (Ctrl+I)"
msgstr "ITALICZ IS (CTRL+I)"
#: lms/static/js/Markdown.Editor.js
msgid "Hyperlink (Ctrl+L)"
msgstr "HYPR LINK IZ (CTRL+L)"
#: lms/static/js/Markdown.Editor.js
msgid "Blockquote (Ctrl+Q)"
msgstr "BLOCKQUOTE IZ (CTRL+Q)"
#: lms/static/js/Markdown.Editor.js
msgid "Code Sample (Ctrl+K)"
msgstr "CODE SAMPL IZ (CTRL+K)"
#: lms/static/js/Markdown.Editor.js
msgid "Image (Ctrl+G)"
msgstr "IMAGE IZ (CTRL+G)"
#: lms/static/js/Markdown.Editor.js
msgid "Numbered List (Ctrl+O)"
msgstr "NUMBRD LYST IZ (CTRL+O)"
#: lms/static/js/Markdown.Editor.js
msgid "Bulleted List (Ctrl+U)"
msgstr "BULLETD LYST IZ (CTRL+U)"
#: lms/static/js/Markdown.Editor.js
msgid "Heading (Ctrl+H)"
msgstr "HEADIN IZ (CTRL+H)"
#: lms/static/js/Markdown.Editor.js
msgid "Horizontal Rule (Ctrl+R)"
msgstr "HORYZONTEL RULE IZ (CTRL+R)"
#: lms/static/js/Markdown.Editor.js
msgid "Undo (Ctrl+Z)"
msgstr "UNDU IZ (CTRL+Z)"
#: lms/static/js/Markdown.Editor.js
msgid "Redo (Ctrl+Y)"
msgstr "REDU IZ (CTRL+Y)"
#: lms/static/js/Markdown.Editor.js
msgid "Redo (Ctrl+Shift+Z)"
msgstr "REDU IZ (CTRL+SHYFT+Z)"
#: lms/static/js/Markdown.Editor.js
msgid "strong text"
msgstr "STRONG TXT"
#: lms/static/js/Markdown.Editor.js
msgid "emphasized text"
msgstr "EMPHYSIZD TXT"
#: lms/static/js/Markdown.Editor.js
msgid "enter image description here"
msgstr "ENTR IMG DESCRYPSHUN HERE"
#: lms/static/js/Markdown.Editor.js
msgid "enter link description here"
msgstr "ENTR LYNK DESCRYPSHUN HERE"
#: lms/static/js/Markdown.Editor.js
msgid "Blockquote"
msgstr "BLOCKQUOTE"
#: lms/static/js/Markdown.Editor.js lms/static/js/Markdown.Editor.js
msgid "enter code here"
msgstr "ENTR CODE HERE"
#: lms/static/js/Markdown.Editor.js
msgid "List item"
msgstr "LYST ITEM"
#: lms/static/js/Markdown.Editor.js
msgid "Heading"
msgstr "HEADIN"
#: lms/static/js/staff_debug_actions.js
msgid "Unknown Error Occurred."
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Successfully reset the attempts for user {user}"
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Failed to reset attempts."
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Successfully deleted student state for user {user}"
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Failed to delete student state."
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Successfully rescored problem for user {user}"
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Failed to rescore problem."
msgstr ""
#: lms/templates/class_dashboard/all_section_metrics.js
#: lms/templates/class_dashboard/all_section_metrics.js
msgid "Unable to retrieve data, please try again later."
msgstr ""
#: lms/templates/class_dashboard/d3_stacked_bar_graph.js
msgid "%(num_students)s student opened Subsection"
msgid_plural "%(num_students)s students opened Subsection"
msgstr[0] ""
msgstr[1] ""
#: lms/templates/class_dashboard/d3_stacked_bar_graph.js
msgid "%(num_students)s student"
msgid_plural "%(num_students)s students"
msgstr[0] ""
msgstr[1] ""
#: lms/templates/class_dashboard/d3_stacked_bar_graph.js
msgid "%(num_questions)s question"
msgid_plural "%(num_questions)s questions"
msgstr[0] ""
msgstr[1] ""
#: lms/templates/class_dashboard/d3_stacked_bar_graph.js
msgid "Number of Students"
msgstr ""
#: cms/static/coffee/src/main.js
msgid ""
"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."
msgstr ""
#: cms/static/coffee/src/main.js
msgid "Studio's having trouble saving your work"
msgstr ""
#: cms/static/coffee/src/views/tabs.js cms/static/coffee/src/views/tabs.js
#: cms/static/coffee/src/views/unit.js
#: cms/static/coffee/src/xblock/cms.runtime.v1.js
#: cms/static/js/models/section.js cms/static/js/utils/drag_and_drop.js
#: cms/static/js/views/asset.js cms/static/js/views/container.js
#: cms/static/js/views/course_info_handout.js
#: cms/static/js/views/course_info_update.js cms/static/js/views/overview.js
#: cms/static/js/views/xblock_editor.js
msgid "Saving&hellip;"
msgstr ""
#: cms/static/coffee/src/views/tabs.js
msgid "Delete Page Confirmation"
msgstr ""
#: cms/static/coffee/src/views/tabs.js
msgid ""
"Are you sure you want to delete this page? This action cannot be undone."
msgstr ""
#: cms/static/coffee/src/views/tabs.js cms/static/coffee/src/views/unit.js
#: cms/static/js/base.js cms/static/js/views/course_info_update.js
#: cms/static/js/views/pages/container.js
msgid "Deleting&hellip;"
msgstr ""
#: cms/static/coffee/src/views/unit.js cms/static/js/views/pages/container.js
msgid "Duplicating&hellip;"
msgstr ""
#: cms/static/coffee/src/views/unit.js cms/static/js/views/pages/container.js
msgid "Delete this component?"
msgstr ""
#: cms/static/coffee/src/views/unit.js cms/static/js/views/pages/container.js
msgid "Deleting this component is permanent and cannot be undone."
msgstr ""
#: cms/static/coffee/src/views/unit.js cms/static/js/views/pages/container.js
msgid "Yes, delete this component"
msgstr ""
#: cms/static/js/base.js
msgid "This link will open in a modal window"
msgstr ""
#: cms/static/js/base.js
msgid "Delete this "
msgstr ""
#: cms/static/js/base.js
msgid "Deleting this "
msgstr ""
#: cms/static/js/base.js
msgid "Yes, delete this "
msgstr ""
#: cms/static/js/index.js
msgid "Please do not use any spaces in this field."
msgstr ""
#: cms/static/js/index.js
msgid "Please do not use any spaces or special characters in this field."
msgstr ""
#: cms/static/js/index.js
msgid ""
"The combined length of the organization, course number, and course run "
"fields cannot be more than 65 characters."
msgstr ""
#: cms/static/js/index.js
msgid "Required field."
msgstr ""
#: cms/static/js/sock.js
msgid "Hide Studio Help"
msgstr ""
#: cms/static/js/sock.js
msgid "Looking for Help with Studio?"
msgstr ""
#: cms/static/js/models/course.js cms/static/js/models/section.js
msgid "You must specify a name"
msgstr ""
#: cms/static/js/models/uploads.js
msgid ""
"Only <%= fileTypes %> files can be uploaded. Please select a file ending in "
"<%= fileExtensions %> to upload."
msgstr ""
#: cms/static/js/models/uploads.js
msgid "or"
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The course must have an assigned start date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The course end date cannot be before the course start date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The course start date cannot be before the enrollment start date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The enrollment start date cannot be after the enrollment end date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The enrollment end date cannot be after the course end date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "Key should only contain letters, numbers, _, or -"
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "There's already another assignment type with this name."
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "Please enter an integer between 0 and 100."
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "Please enter an integer greater than 0."
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "Please enter non-negative integer."
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "Cannot drop more <% attrs.types %> than will assigned."
msgstr ""
#: cms/static/js/models/settings/course_grading_policy.js
msgid "Grace period must be specified in HH:MM format."
msgstr ""
#: cms/static/js/views/asset.js
msgid "Delete File Confirmation"
msgstr ""
#: cms/static/js/views/asset.js
msgid ""
"Are you sure you wish to delete this item. It cannot be reversed!\n"
"\n"
"Also any content that links/refers to this item will no longer work (e.g. broken images and/or links)"
msgstr ""
#: cms/static/js/views/asset.js
msgid "Your file has been deleted."
msgstr ""
#: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore
msgid "Name"
msgstr ""
#: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore
msgid "Date Added"
msgstr ""
#: cms/static/js/views/assets.js
msgid "Uploading…"
msgstr ""
#: cms/static/js/views/assets.js
#: cms/templates/js/asset-upload-modal.underscore
msgid "Choose File"
msgstr ""
#: cms/static/js/views/assets.js
#: cms/templates/js/asset-upload-modal.underscore
msgid "Upload New File"
msgstr ""
#: cms/static/js/views/assets.js
msgid "Load Another File"
msgstr ""
#: cms/static/js/views/course_info_update.js
msgid "Are you sure you want to delete this update?"
msgstr ""
#: cms/static/js/views/course_info_update.js
msgid "This action cannot be undone."
msgstr ""
#: cms/static/js/views/edit_chapter.js
msgid "Upload a new PDF to “<%= name %>”"
msgstr ""
#: cms/static/js/views/edit_chapter.js
msgid "Please select a PDF file to upload."
msgstr ""
#: cms/static/js/views/edit_textbook.js
#: cms/static/js/views/overview_assignment_grader.js
msgid "Saving"
msgstr ""
#: cms/static/js/views/import.js
msgid "There was an error with the upload"
msgstr ""
#: cms/static/js/views/import.js
msgid ""
"File format not supported. Please upload a file with a <code>tar.gz</code> "
"extension."
msgstr ""
#: cms/static/js/views/metadata.js
msgid "Upload File"
msgstr ""
#: cms/static/js/views/overview.js
msgid "Collapse All Sections"
msgstr ""
#: cms/static/js/views/overview.js
msgid "Expand All Sections"
msgstr ""
#: cms/static/js/views/overview.js
msgid "Release date:"
msgstr ""
#: cms/static/js/views/overview.js
msgid "{month}/{day}/{year} at {hour}:{minute} UTC"
msgstr ""
#: cms/static/js/views/overview.js
msgid "Edit section release date"
msgstr ""
#: cms/static/js/views/overview_assignment_grader.js
msgid "Not Graded"
msgstr ""
#. Translators: sample result: "Showing 0-9 out of 25 total, sorted by Date
#. Added ascending"
#: cms/static/js/views/paging_header.js
msgid ""
"Showing %(current_item_range)s out of %(total_items_count)s, sorted by "
"%(sort_name)s ascending"
msgstr ""
#. Translators: sample result: "Showing 0-9 out of 25 total, sorted by Date
#. Added descending"
#: cms/static/js/views/paging_header.js
msgid ""
"Showing %(current_item_range)s out of %(total_items_count)s, sorted by "
"%(sort_name)s descending"
msgstr ""
#. Translators: turns into "25 total" to be used in other sentences, e.g.
#. "Showing 0-9 out of 25 total".
#: cms/static/js/views/paging_header.js
msgid "%(total_items)s total"
msgstr ""
#: cms/static/js/views/section_edit.js
msgid "Your change could not be saved"
msgstr ""
#: cms/static/js/views/section_edit.js
msgid "Return and resolve this issue"
msgstr ""
#: cms/static/js/views/show_textbook.js
msgid "Delete “<%= name %>”?"
msgstr ""
#: cms/static/js/views/show_textbook.js
msgid ""
"Deleting a textbook cannot be undone and once deleted any reference to it in"
" your courseware's navigation will also be removed."
msgstr ""
#: cms/static/js/views/show_textbook.js
msgid "Deleting"
msgstr ""
#: cms/static/js/views/uploads.js
#: cms/templates/js/metadata-file-uploader-item.underscore
#: cms/templates/js/video/metadata-translations-item.underscore
msgid "Upload"
msgstr ""
#: cms/static/js/views/uploads.js
msgid "We're sorry, there was an error"
msgstr ""
#: cms/static/js/views/validation.js
msgid "You've made some changes"
msgstr ""
#: cms/static/js/views/validation.js
msgid "Your changes will not take effect until you save your progress."
msgstr ""
#: cms/static/js/views/validation.js
msgid "You've made some changes, but there are some errors"
msgstr ""
#: cms/static/js/views/validation.js
msgid ""
"Please address the errors on this page first, and then save your progress."
msgstr ""
#: cms/static/js/views/validation.js
msgid "Save Changes"
msgstr ""
#: cms/static/js/views/validation.js
msgid "Your changes have been saved."
msgstr ""
#: cms/static/js/views/xblock_editor.js
msgid "Editor"
msgstr ""
#: cms/static/js/views/xblock_editor.js
msgid "Settings"
msgstr ""
#: cms/static/js/views/components/add_xblock.js
msgid "Adding&hellip;"
msgstr ""
#: cms/static/js/views/modals/base_modal.js
#: cms/templates/js/edit-textbook.underscore
#: cms/templates/js/section-name-edit.underscore
msgid "Save"
msgstr ""
#: cms/static/js/views/modals/edit_xblock.js
msgid "Component"
msgstr ""
#: cms/static/js/views/modals/edit_xblock.js
msgid "Editing: %(title)s"
msgstr ""
#: cms/static/js/views/settings/advanced.js
msgid ""
"Your changes will not take effect until you save your progress. Take care "
"with key and value formatting, as validation is not implemented."
msgstr ""
#: cms/static/js/views/settings/advanced.js
msgid "Your policy changes have been saved."
msgstr ""
#: cms/static/js/views/settings/advanced.js
msgid ""
"Please note that validation of your policy key and value pairs is not "
"currently in place yet. If you are having difficulties, please review your "
"policy pairs."
msgstr ""
#: cms/static/js/views/settings/main.js
msgid "Upload your course image."
msgstr ""
#: cms/static/js/views/settings/main.js
msgid "Files must be in JPEG or PNG format."
msgstr ""
#: cms/static/js/views/video/translations_editor.js
msgid ""
"Sorry, there was an error parsing the subtitles that you uploaded. Please "
"check the format and try again."
msgstr ""
#: cms/static/js/views/video/translations_editor.js
msgid "Upload translation"
msgstr ""
#: common/templates/js/image-modal.underscore
msgid "Fullscreen"
msgstr ""
#: common/templates/js/image-modal.underscore
msgid "Large"
msgstr ""
#: common/templates/js/image-modal.underscore
msgid "Zoom In"
msgstr ""
#: common/templates/js/image-modal.underscore
msgid "Zoom Out"
msgstr ""
#: cms/templates/js/add-xblock-component-menu-problem.underscore
msgid "Common Problem Types"
msgstr ""
#: cms/templates/js/add-xblock-component-menu-problem.underscore
msgid "Advanced"
msgstr ""
#: cms/templates/js/add-xblock-component.underscore
msgid "Add New Component"
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "List of uploaded files and assets in this course"
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "Embed URL"
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "External URL"
msgstr ""
#: cms/templates/js/asset-library.underscore
#: cms/templates/js/basic-modal.underscore
msgid "Actions"
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "You haven't added any assets to this course yet."
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "Upload your first asset"
msgstr ""
#: cms/templates/js/asset-upload-modal.underscore
msgid "close"
msgstr ""
#: cms/templates/js/asset.underscore
msgid "Open/download this file"
msgstr ""
#: cms/templates/js/asset.underscore
msgid "Delete this asset"
msgstr ""
#: cms/templates/js/asset.underscore
msgid "Lock this asset"
msgstr ""
#: cms/templates/js/asset.underscore
msgid "Lock/unlock file"
msgstr ""
#: cms/templates/js/checklist.underscore
msgid "{number}% of checklists completed"
msgstr ""
#: cms/templates/js/checklist.underscore
msgid "Tasks Completed:"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Assignment Type Name"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "e.g. Homework, Midterm Exams"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Abbreviation"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "e.g. HW, Midterm"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Weight of Total Grade"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "as a percent, e.g. 40"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Total Number"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "total exercises assigned"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Number of Droppable"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "total exercises that won't be graded"
msgstr ""
#: cms/templates/js/course_info_handouts.underscore
msgid "You have no handouts defined"
msgstr ""
#: cms/templates/js/course_info_handouts.underscore
msgid ""
"There is invalid code in your content. Please check to make sure it is valid"
" HTML."
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "Chapter Name"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "Chapter %s"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "provide the title/name of the chapter that will be used in navigating"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "Chapter Asset"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "path/to/introductionToCookieBaking-CH%d.pdf"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "upload a PDF file or provide the path to a Studio asset file"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "Upload PDF"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "delete chapter"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "error.message"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Textbook information"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Textbook Name"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Introduction to Cookie Baking"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid ""
"provide the title/name of the text book as you would like your students to "
"see it"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Chapter information"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Add a Chapter"
msgstr ""
#: cms/templates/js/metadata-dict-entry.underscore
#: cms/templates/js/metadata-list-entry.underscore
#: cms/templates/js/video/metadata-translations-entry.underscore
msgid "Add"
msgstr ""
#: cms/templates/js/metadata-dict-entry.underscore
#: cms/templates/js/metadata-file-uploader-entry.underscore
#: cms/templates/js/metadata-list-entry.underscore
#: cms/templates/js/metadata-number-entry.underscore
#: cms/templates/js/metadata-option-entry.underscore
#: cms/templates/js/metadata-string-entry.underscore
#: cms/templates/js/mock/mock-xmodule-editor.underscore
#: cms/templates/js/mock/mock-xmodule-settings-only-editor.underscore
#: cms/templates/js/video/metadata-translations-entry.underscore
msgid "Clear Value"
msgstr ""
#: cms/templates/js/metadata-file-uploader-item.underscore
#: cms/templates/js/video/metadata-translations-item.underscore
msgid "Replace"
msgstr ""
#: cms/templates/js/metadata-file-uploader-item.underscore
#: cms/templates/js/video/metadata-translations-item.underscore
msgid "Download"
msgstr ""
#: cms/templates/js/no-textbooks.underscore
msgid "You haven't added any textbooks to this course yet."
msgstr ""
#: cms/templates/js/no-textbooks.underscore
msgid "Add your first textbook"
msgstr ""
#: cms/templates/js/paging-footer.underscore
#: cms/templates/js/paging-header.underscore
msgid "Previous"
msgstr ""
#: cms/templates/js/paging-footer.underscore
msgid "Page number"
msgstr ""
#: cms/templates/js/paging-footer.underscore
#: cms/templates/js/paging-header.underscore
msgid "Next"
msgstr ""
#: cms/templates/js/show-textbook.underscore
msgid "View Live"
msgstr ""
#: cms/templates/js/upload-dialog.underscore
msgid "File upload succeeded"
msgstr ""
#: cms/templates/js/video/transcripts/metadata-videolist-entry.underscore
msgid "Add URLs for additional versions"
msgstr ""
#: cms/templates/js/video/transcripts/metadata-videolist-entry.underscore
msgid ""
"To be sure all students can access the video, we recommend providing both an"
" .mp4 and a .webm version of your video. Click below to add a URL for "
"another version. These URLs cannot be YouTube URLs. The first listed video "
"that\\'s compatible with the student\\'s computer will play."
msgstr ""
#: cms/templates/js/video/transcripts/metadata-videolist-entry.underscore
msgid "Default Timed Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
msgid "Timed Transcript Conflict"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
msgid ""
"The timed transcript for the first video file does not appear to be the same"
" as the timed transcript for the second video file."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
msgid "Which timed transcript would you like to use?"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid "Error."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
msgid "Timed Transcript from"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
msgid "Timed Transcript Found"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
msgid ""
"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."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid "Upload New Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
msgid "Upload New .srt Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
msgid "Download Transcript for Editing"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
msgid "No EdX Timed Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
msgid ""
"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."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
msgid "Import YouTube Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
msgid "No Timed Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
msgid ""
"EdX doesn\\'t have a timed transcript for this video. Please upload an .srt "
"file."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
msgid ""
"The timed transcript for this video on edX is out of date, but YouTube has a"
" current timed transcript for this video."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
msgid "Do you want to replace the edX transcript with the YouTube transcript?"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
msgid "Yes, replace the edX transcript with the YouTube transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
msgid "Timed Transcript Uploaded Successfully"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
msgid ""
"EdX has a timed transcript for this video. If you want to replace this "
"transcript, upload a new .srt transcript file. If you want to edit this "
"transcript, you can download, edit, and re-upload the existing transcript."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid "Confirm Timed Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid ""
"You changed a video URL, but did not change the timed transcript file. Do "
"you want to use the current timed transcript or upload a new .srt transcript"
" file?"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid "Use Current Transcript"
msgstr ""
This source diff could not be displayed because it is too large. You can view the blob instead.
# #-#-#-#-# djangojs-partial.po (edx-platform) #-#-#-#-#
# edX community translations have been downloaded from Pirate English (http://www.transifex.com/projects/p/edx-platform/language/en@pirate/).
# Copyright (C) 2014 EdX
# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
#
# Translators:
# David Baumgold <david@davidbaumgold.com>, 2014
# dkh <dkh@edx.org>, 2014
# #-#-#-#-# djangojs-studio.po (edx-platform) #-#-#-#-#
# edX translation file.
# Copyright (C) 2014 EdX
# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
#
# Translators:
# #-#-#-#-# underscore.po (edx-platform) #-#-#-#-#
# edX translation file
# Copyright (C) 2014 edX
# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
#
# Translators:
# #-#-#-#-# underscore-studio.po (edx-platform) #-#-#-#-#
# edX translation file
# Copyright (C) 2014 edX
# This file is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: edx-platform\n"
"Report-Msgid-Bugs-To: openedx-translation@googlegroups.com\n"
"POT-Creation-Date: 2014-06-19 00:15-0400\n"
"PO-Revision-Date: 2014-06-19 04:17+0000\n"
"Last-Translator: Sarina Canelake <sarina@edx.org>\n"
"Language-Team: Pirate English (http://www.transifex.com/projects/p/edx-platform/language/en@pirate/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 1.3\n"
"Language: en@pirate\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: cms/static/coffee/src/views/tabs.js
#: cms/static/js/views/course_info_update.js
#: cms/static/js/views/modals/edit_xblock.js
#: common/static/coffee/src/discussion/utils.js
msgid "OK"
msgstr ""
#: cms/static/coffee/src/views/tabs.js cms/static/js/base.js
#: cms/static/js/views/asset.js cms/static/js/views/baseview.js
#: cms/static/js/views/course_info_update.js
#: cms/static/js/views/show_textbook.js cms/static/js/views/validation.js
#: cms/static/js/views/modals/base_modal.js
#: lms/static/admin/js/admin/DateTimeShortcuts.js
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Cancel"
msgstr "Belay"
#: cms/static/js/base.js lms/static/js/verify_student/photocapture.js
#: cms/templates/js/checklist.underscore
msgid "This link will open in a new browser window/tab"
msgstr ""
#: cms/static/js/views/asset.js cms/static/js/views/show_textbook.js
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
#: cms/templates/js/course_grade_policy.underscore
#: cms/templates/js/show-textbook.underscore
msgid "Delete"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Show Annotations"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Hide Annotations"
msgstr "Hide Ye Annotations"
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Expand Instructions"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Collapse Instructions"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Commentary"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/annotatable/display.js
msgid "Reply to Annotation"
msgstr ""
#. Translators: %(earned)s is the number of points earned. %(total)s is the
#. total number of points (examples: 0/1, 1/1, 2/3, 5/10). The total number of
#. points will always be at least 1. We pluralize based on the total number of
#. points (example: 0/1 point; 1/2 points);
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "(%(earned)s/%(possible)s point)"
msgid_plural "(%(earned)s/%(possible)s points)"
msgstr[0] ""
msgstr[1] ""
#. Translators: %(num_points)s is the number of points possible (examples: 1,
#. 3, 10). There will always be at least 1 point possible.;
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "(%(num_points)s point possible)"
msgid_plural "(%(num_points)s points possible)"
msgstr[0] ""
msgstr[1] ""
#: common/lib/xmodule/xmodule/js/src/capa/display.js
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Answer:"
msgstr ""
#. Translators: the word Answer here refers to the answer to a problem the
#. student must solve.;
#: common/lib/xmodule/xmodule/js/src/capa/display.js
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Hide Answer"
msgstr ""
#. Translators: the word Answer here refers to the answer to a problem the
#. student must solve.;
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Show Answer"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Reveal Answer"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Answer hidden"
msgstr ""
#. Translators: the word unanswered here is about answering a problem the
#. student must solve.;
#: common/lib/xmodule/xmodule/js/src/capa/display.js
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "unanswered"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/capa/display.js
msgid "Status: unsubmitted"
msgstr ""
#. Translators: A "rating" is a score a student gives to indicate how well
#. they feel they were graded on this problem
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "You need to pick a rating before you can submit."
msgstr ""
#. Translators: this message appears when transitioning between openended
#. grading
#. types (i.e. self assesment to peer assessment). Sometimes, if a student
#. did not perform well at one step, they cannot move on to the next one.
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Your score did not meet the criteria to move to the next step."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Submit"
msgstr ""
#. Translators: one clicks this button after one has finished filling out the
#. grading
#. form for an openended assessment
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Submit assessment"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"Your response has been submitted. Please check back later for your grade."
msgstr ""
#. Translators: this button is clicked to submit a student's rating of
#. an evaluator's assessment
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Submit post-assessment"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Answer saved, but not yet submitted."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"Please confirm that you wish to submit your work. You will not be able to "
"make any changes after submitting."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"You are trying to upload a file that is too large for our system. Please "
"choose a file under 2MB or paste a link to it into the answer box."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"Are you sure you want to remove your previous response to this question?"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Moved to next step."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid ""
"File uploads are required for this question, but are not supported in your "
"browser. Try the newest version of Google Chrome. Alternatively, if you have"
" uploaded the image to another website, you can paste a link to it into the "
"answer box."
msgstr ""
#. Translators: "Show Question" is some text that, when clicked, shows a
#. question's
#. content that had been hidden
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Show Question"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
#: common/lib/xmodule/xmodule/js/src/combinedopenended/display.js
msgid "Hide Question"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/sequence/display.js
msgid ""
"Sequence error! Cannot navigate to tab %(tab_name)s in the current "
"SequenceModule. Please contact the course staff."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Volume"
msgstr ""
#. Translators: Volume level equals 0%.
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Muted"
msgstr ""
#. Translators: Volume level in range ]0,20]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Very low"
msgstr ""
#. Translators: Volume level in range ]20,40]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Low"
msgstr ""
#. Translators: Volume level in range ]40,60]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Average"
msgstr ""
#. Translators: Volume level in range ]60,80]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Loud"
msgstr ""
#. Translators: Volume level in range ]80,99]%
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Very loud"
msgstr ""
#. Translators: Volume level equals 100%.
#: common/lib/xmodule/xmodule/js/src/video/00_i18n.js
msgid "Maximum"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/02_html5_video.js
msgid ""
"VideoPlayer: Element corresponding to the given selector was not found."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/02_html5_video.js
msgid "This browser cannot play .mp4, .ogg, or .webm files."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/02_html5_video.js
msgid "Try using a different browser, such as Google Chrome."
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Video slider"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Pause"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Play"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Fill browser"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/04_video_control.js
msgid "Exit full browser"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/05_video_quality_control.js
msgid "HD on"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/05_video_quality_control.js
msgid "HD off"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "Video position"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "Video ended"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "%(value)s hour"
msgid_plural "%(value)s hours"
msgstr[0] ""
msgstr[1] ""
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "%(value)s minute"
msgid_plural "%(value)s minutes"
msgstr[0] ""
msgstr[1] ""
#: common/lib/xmodule/xmodule/js/src/video/06_video_progress_slider.js
msgid "%(value)s second"
msgid_plural "%(value)s seconds"
msgstr[0] ""
msgstr[1] ""
#: common/lib/xmodule/xmodule/js/src/video/09_video_caption.js
msgid "Caption will be displayed when "
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/09_video_caption.js
msgid "Turn on captions"
msgstr ""
#: common/lib/xmodule/xmodule/js/src/video/09_video_caption.js
msgid "Turn off captions"
msgstr ""
#: common/static/coffee/src/discussion/discussion_module_view.js
#: common/static/coffee/src/discussion/discussion_module_view.js
msgid "Hide Discussion"
msgstr ""
#: common/static/coffee/src/discussion/discussion_module_view.js
msgid "Show Discussion"
msgstr ""
#: common/static/coffee/src/discussion/discussion_module_view.js
#: common/static/coffee/src/discussion/discussion_module_view.js
#: common/static/coffee/src/discussion/utils.js
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
#: common/static/coffee/src/discussion/views/discussion_user_profile_view.js
#: common/static/coffee/src/discussion/views/response_comment_view.js
msgid "Sorry"
msgstr ""
#: common/static/coffee/src/discussion/discussion_module_view.js
msgid "We had some trouble loading the discussion. Please try again."
msgstr ""
#: common/static/coffee/src/discussion/discussion_module_view.js
msgid ""
"We had some trouble loading the threads you requested. Please try again."
msgstr ""
#: common/static/coffee/src/discussion/utils.js
msgid "Loading content"
msgstr ""
#: common/static/coffee/src/discussion/utils.js
msgid ""
"We had some trouble processing your request. Please ensure you have copied "
"any unsaved work and then reload the page."
msgstr ""
#: common/static/coffee/src/discussion/utils.js
msgid "We had some trouble processing your request. Please try again."
msgstr ""
#: common/static/coffee/src/discussion/utils.js
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
#: common/static/coffee/src/discussion/views/new_post_view.js
#: common/static/coffee/src/discussion/views/new_post_view.js
#: common/static/coffee/src/discussion/views/new_post_view.js
msgid "…"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_content_view.js
#: common/static/coffee/src/discussion/views/discussion_content_view.js
#: common/templates/js/image-modal.underscore
msgid "Close"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_content_view.js
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "Open"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "remove vote"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "vote"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "vote (click to remove your vote)"
msgid_plural "votes (click to remove your vote)"
msgstr[0] ""
msgstr[1] ""
#: common/static/coffee/src/discussion/views/discussion_content_view.js
msgid "vote (click to vote)"
msgid_plural "votes (click to vote)"
msgstr[0] ""
msgstr[1] ""
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "Load more"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "Loading more threads"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "We had some trouble loading more threads. Please try again."
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "%(unread_count)s new comment"
msgid_plural "%(unread_count)s new comments"
msgstr[0] ""
msgstr[1] ""
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid "Loading thread list"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_list_view.js
msgid ""
"No results found for %(original_query)s. Showing results for "
"%(suggested_query)s."
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Click to remove report"
msgstr ""
#. Translators: The text between start_sr_span and end_span is not shown
#. in most browsers but will be read by screen readers.
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "Misuse Reported%(start_sr_span)s, click to remove report%(end_span)s"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "Report Misuse"
msgstr ""
#. Translators: The text between start_sr_span and end_span is not shown
#. in most browsers but will be read by screen readers.
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Pinned%(start_sr_span)s, click to unpin%(end_span)s"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Click to unpin"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Pinned"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_show_view.js
msgid "Pin Thread"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid ""
"The thread you selected has been deleted. Please select another thread."
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "We had some trouble loading responses. Please reload the page."
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "We had some trouble loading more responses. Please try again."
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "%(numResponses)s response"
msgid_plural "%(numResponses)s responses"
msgstr[0] ""
msgstr[1] ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Showing all responses"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Showing first response"
msgid_plural "Showing first %(numResponses)s responses"
msgstr[0] ""
msgstr[1] ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Load all responses"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Load next %(numResponses)s responses"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_thread_view.js
msgid "Are you sure you want to delete this post?"
msgstr ""
#: common/static/coffee/src/discussion/views/discussion_user_profile_view.js
msgid "We had some trouble loading the page you requested. Please try again."
msgstr ""
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
msgid "anonymous"
msgstr ""
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "staff"
msgstr ""
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "Community TA"
msgstr ""
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/response_comment_show_view.js
#: common/static/coffee/src/discussion/views/thread_response_show_view.js
msgid "Misuse Reported, click to remove report"
msgstr ""
#: common/static/coffee/src/discussion/views/response_comment_view.js
msgid "Are you sure you want to delete this comment?"
msgstr ""
#: common/static/coffee/src/discussion/views/response_comment_view.js
msgid "We had some trouble deleting this comment. Please try again."
msgstr ""
#: common/static/coffee/src/discussion/views/thread_response_view.js
msgid "Are you sure you want to delete this response?"
msgstr ""
#: common/static/js/capa/drag_and_drop/base_image.js
msgid "Drop target image"
msgstr ""
#: common/static/js/capa/drag_and_drop/draggable_events.js
msgid "dragging out of slider"
msgstr ""
#: common/static/js/capa/drag_and_drop/draggable_events.js
msgid "dragging"
msgstr ""
#: common/static/js/capa/drag_and_drop/draggable_events.js
msgid "dropped in slider"
msgstr ""
#: common/static/js/capa/drag_and_drop/draggable_events.js
msgid "dropped on target"
msgstr ""
#. Translators: %s will be a time quantity, such as "4 minutes" or "1 day"
#: common/static/js/src/jquery.timeago.locale.js
msgid "%s ago"
msgstr ""
#. Translators: %s will be a time quantity, such as "4 minutes" or "1 day"
#: common/static/js/src/jquery.timeago.locale.js
msgid "%s from now"
msgstr ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "less than a minute"
msgstr ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "about a minute"
msgstr ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "%d minute"
msgid_plural "%d minutes"
msgstr[0] ""
msgstr[1] ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "about an hour"
msgstr ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "about %d hour"
msgid_plural "about %d hours"
msgstr[0] ""
msgstr[1] ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "a day"
msgstr ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "%d day"
msgid_plural "%d days"
msgstr[0] ""
msgstr[1] ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "about a month"
msgstr ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "%d month"
msgid_plural "%d months"
msgstr[0] ""
msgstr[1] ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "about a year"
msgstr ""
#: common/static/js/src/jquery.timeago.locale.js
msgid "%d year"
msgid_plural "%d years"
msgstr[0] ""
msgstr[1] ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "User"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Annotation"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Start"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "End"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "#Replies"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Date posted"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "More"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "My Notes"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Instructor"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Public"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Search"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Users"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Tags"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Annotation Text"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: common/static/js/vendor/ova/catch/js/catch.js
#: cms/templates/js/metadata-dict-entry.underscore
#: cms/templates/js/metadata-file-uploader-entry.underscore
#: cms/templates/js/metadata-list-entry.underscore
#: cms/templates/js/metadata-number-entry.underscore
#: cms/templates/js/metadata-option-entry.underscore
#: cms/templates/js/metadata-string-entry.underscore
#: cms/templates/js/mock/mock-xmodule-editor.underscore
#: cms/templates/js/mock/mock-xmodule-settings-only-editor.underscore
#: cms/templates/js/video/metadata-translations-entry.underscore
msgid "Clear"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Text"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Video"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Image"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Reply"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
#: cms/templates/js/show-textbook.underscore
#: cms/templates/js/mock/mock-container-page.underscore
msgid "Edit"
msgstr ""
#: common/static/js/vendor/ova/catch/js/catch.js
msgid "Tags:"
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid "Available %s"
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid ""
"This is the list of available %s. You may choose some by selecting them in "
"the box below and then clicking the \"Choose\" arrow between the two boxes."
msgstr ""
"This be the list o' available %s. Ye may choose some by selecting them in "
"that thar box belowdecks, and then click the \"Be Choosin'\" arrow 'tween "
"the two boxes."
#: lms/static/admin/js/SelectFilter2.js
msgid "Type into this box to filter down the list of available %s."
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid "Filter"
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid "Choose all"
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid "Click to choose all %s at once."
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid "Choose"
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
#: cms/templates/js/video/metadata-translations-item.underscore
msgid "Remove"
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid "Chosen %s"
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid ""
"This is the list of chosen %s. You may remove some by selecting them in the "
"box below and then clicking the \"Remove\" arrow between the two boxes."
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid "Remove all"
msgstr ""
#: lms/static/admin/js/SelectFilter2.js
msgid "Click to remove all chosen %s at once."
msgstr ""
#: lms/static/admin/js/actions.js lms/static/admin/js/actions.min.js
msgid "%(sel)s of %(cnt)s selected"
msgid_plural "%(sel)s of %(cnt)s selected"
msgstr[0] ""
msgstr[1] ""
#: lms/static/admin/js/actions.js lms/static/admin/js/actions.min.js
msgid ""
"You have unsaved changes on individual editable fields. If you run an "
"action, your unsaved changes will be lost."
msgstr ""
#: lms/static/admin/js/actions.js lms/static/admin/js/actions.min.js
msgid ""
"You have selected an action, but you haven't saved your changes to "
"individual fields yet. Please click OK to save. You'll need to re-run the "
"action."
msgstr ""
#: lms/static/admin/js/actions.js lms/static/admin/js/actions.min.js
msgid ""
"You have selected an action, and you haven't made any changes on individual "
"fields. You're probably looking for the Go button rather than the Save "
"button."
msgstr ""
#. Translators: the names of months, keep the pipe (|) separators.
#: lms/static/admin/js/calendar.js lms/static/admin/js/dateparse.js
msgid ""
"January|February|March|April|May|June|July|August|September|October|November|December"
msgstr ""
#. Translators: abbreviations for days of the week, keep the pipe (|)
#. separators.
#: lms/static/admin/js/calendar.js
msgid "S|M|T|W|T|F|S"
msgstr ""
#: lms/static/admin/js/collapse.js lms/static/admin/js/collapse.js.c
#: lms/static/admin/js/collapse.min.js
msgid "Show"
msgstr ""
#: lms/static/admin/js/collapse.js lms/static/admin/js/collapse.min.js
msgid "Hide"
msgstr ""
#. Translators: the names of days, keep the pipe (|) separators.
#: lms/static/admin/js/dateparse.js
msgid "Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday"
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Now"
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Clock"
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Choose a time"
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Midnight"
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "6 a.m."
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Noon"
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Today"
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Calendar"
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Yesterday"
msgstr ""
#: lms/static/admin/js/admin/DateTimeShortcuts.js
msgid "Tomorrow"
msgstr ""
#: lms/static/coffee/src/calculator.js
msgid "Open Calculator"
msgstr "Be Openin' yer Electric Abacus"
#: lms/static/coffee/src/calculator.js
msgid "Close Calculator"
msgstr ""
#: lms/static/coffee/src/customwmd.js
#: cms/templates/js/asset-library.underscore
msgid "Preview"
msgstr ""
#: lms/static/coffee/src/customwmd.js
msgid "Post body"
msgstr ""
#. Translators: "Distribution" refers to a grade distribution. This error
#. message appears when there is an error getting the data on grade
#. distribution.;
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "Error fetching distribution."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "Unavailable metric display."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "Error fetching grade distributions."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "Last Updated: <%= timestamp %>"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/analytics.js
msgid "<%= num_students %> students scored."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "Loading..."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "Error getting student list."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "Error retrieving grading configuration."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "Error generating grades. Please try again."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid "File Name"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/data_download.js
msgid ""
"Links are generated on demand and expire within 5 minutes due to the "
"sensitive nature of student information."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Username"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Email"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Revoke access"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Enter username or email"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Please enter a username or email."
msgstr ""
#. Translators: A rolename appears this sentence. A rolename is something like
#. "staff" or "beta tester".;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error fetching list for role"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error changing user's permissions."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Could not find a user with username or email address '<%= identifier %>'."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Error: User '<%= username %>' has not yet activated their account. Users "
"must create and activate their accounts before they can be assigned a role."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error: You cannot remove yourself from the Instructor group!"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error adding/removing users as beta testers."
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users were successfully added as beta testers:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users were successfully removed as beta testers:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users were not added as beta testers:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users were not removed as beta testers:"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Users must create and activate their account before they can be promoted to "
"beta tester."
msgstr ""
#. Translators: A list of identifiers (which are email addresses and/or
#. usernames) appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Could not find users associated with the following identifiers:"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Error enrolling/unenrolling users."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "The following email addresses and/or usernames are invalid:"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Successfully enrolled and sent email to the following users:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "Successfully enrolled the following users:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Successfully sent enrollment emails to the following users. They will be "
"allowed to enroll once they register:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users will be allowed to enroll once they register:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Successfully sent enrollment emails to the following users. They will be "
"enrolled once they register:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "These users will be enrolled once they register:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"Emails successfully sent. The following users are no longer enrolled in the "
"course:"
msgstr ""
#. Translators: A list of users appears after this sentence;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid "The following users are no longer enrolled in the course:"
msgstr ""
#. Translators: A list of users appears after this sentence. This situation
#. arises when a staff member tries to unenroll a user who is not currently
#. enrolled in this course.;
#: lms/static/coffee/src/instructor_dashboard/membership.js
msgid ""
"These users were not affiliated with the course so could not be unenrolled:"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "Your message must have a subject."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "Your message cannot be blank."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "Your email was successfully queued for sending."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid ""
"You are about to send an email titled '<%= subject %>' to yourself. Is this "
"OK?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid ""
"You are about to send an email titled '<%= subject %>' to everyone who is "
"staff or instructor on this course. Is this OK?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid ""
"You are about to send an email titled '<%= subject %>' to ALL (everyone who "
"is enrolled in this course as student, staff, or instructor). Is this OK?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid ""
"Your email was successfully queued for sending. Please note that for large "
"classes, it may take up to an hour (or more, if other courses are "
"simultaneously sending email) to send all emails."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "Error sending email."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "There is no email history for this course."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/send_email.js
msgid "There was an error obtaining email task history for this course."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Please enter a student email address or username."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error getting student progress url for '<%= student_id %>'. Make sure that "
"the student identifier is spelled correctly."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Please enter a problem location."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Success! Problem attempts reset for problem '<%= problem_id %>' and student "
"'<%= student_id %>'."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error resetting problem attempts for problem '<%= problem_id %>' and student"
" '<%= student_id %>'. Make sure that the problem and student identifiers are"
" complete and correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Delete student '<%= student_id %>'s state on problem '<%= problem_id %>'?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error deleting student '<%= student_id %>'s state on problem '<%= problem_id"
" %>'. Make sure that the problem and student identifiers are complete and "
"correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Module state successfully deleted."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Started rescore problem task for problem '<%= problem_id %>' and student "
"'<%= student_id %>'. Click the 'Show Background Task History for Student' "
"button to see the status of the task."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error starting a task to rescore problem '<%= problem_id %>' for student "
"'<%= student_id %>'. Make sure that the the problem and student identifiers "
"are complete and correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error getting task history for problem '<%= problem_id %>' and student '<%= "
"student_id %>'. Make sure that the problem and student identifiers are "
"complete and correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Reset attempts for all students on problem '<%= problem_id %>'?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Successfully started task to reset attempts for problem '<%= problem_id %>'."
" Click the 'Show Background Task History for Problem' button to see the "
"status of the task."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error starting a task to reset attempts for all students on problem '<%= "
"problem_id %>'. Make sure that the problem identifier is complete and "
"correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Rescore problem '<%= problem_id %>' for all students?"
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Successfully started task to rescore problem '<%= problem_id %>' for all "
"students. Click the 'Show Background Task History for Problem' button to see"
" the status of the task."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid ""
"Error starting a task to rescore problem '<%= problem_id %>'. Make sure that"
" the problem identifier is complete and correct."
msgstr ""
#: lms/static/coffee/src/instructor_dashboard/student_admin.js
msgid "Error listing task history for this student and problem."
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task Type"
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task inputs"
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task ID"
msgstr ""
#. Translators: a "Requester" is a username that requested a task such as
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Requester"
msgstr ""
#. Translators: A timestamp of when a task (eg, sending email) was submitted
#. appears after this
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Submitted"
msgstr ""
#. Translators: The length of a task (eg, sending email) in seconds appears
#. this
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Duration (sec)"
msgstr ""
#. Translators: The state (eg, "In progress") of a task (eg, sending email)
#. appears after this.
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "State"
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task Status"
msgstr ""
#. Translators: a "Task" is a background process such as grading students or
#. sending email
#: lms/static/coffee/src/instructor_dashboard/util.js
msgid "Task Progress"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Grades saved. Fetching the next submission to grade."
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Problem Name"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Graded"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Available to Grade"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Required"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Progress"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Back to problem list"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Try loading again"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "<%= num %> available "
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "<%= num %> graded "
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "<%= num %> more needed to start ML"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "Re-check for submissions"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "System got into invalid state: <%= state %>"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "System got into invalid state for submission: "
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "(Hide)"
msgstr ""
#: lms/static/coffee/src/staff_grading/staff_grading.js
msgid "(Show)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Insert Hyperlink"
msgstr ""
#. Translators: Please keep the quotation marks (") around this text
#: lms/static/js/Markdown.Editor.js lms/static/js/Markdown.Editor.js.c
msgid "\"optional title\""
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Insert Image (upload file or type url)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Markdown Editing Help"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Bold (Ctrl+B)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Italic (Ctrl+I)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Hyperlink (Ctrl+L)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Blockquote (Ctrl+Q)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Code Sample (Ctrl+K)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Image (Ctrl+G)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Numbered List (Ctrl+O)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Bulleted List (Ctrl+U)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Heading (Ctrl+H)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Horizontal Rule (Ctrl+R)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Undo (Ctrl+Z)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Redo (Ctrl+Y)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Redo (Ctrl+Shift+Z)"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "strong text"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "emphasized text"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "enter image description here"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "enter link description here"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Blockquote"
msgstr ""
#: lms/static/js/Markdown.Editor.js lms/static/js/Markdown.Editor.js
msgid "enter code here"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "List item"
msgstr ""
#: lms/static/js/Markdown.Editor.js
msgid "Heading"
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Unknown Error Occurred."
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Successfully reset the attempts for user {user}"
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Failed to reset attempts."
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Successfully deleted student state for user {user}"
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Failed to delete student state."
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Successfully rescored problem for user {user}"
msgstr ""
#: lms/static/js/staff_debug_actions.js
msgid "Failed to rescore problem."
msgstr ""
#: lms/templates/class_dashboard/all_section_metrics.js
#: lms/templates/class_dashboard/all_section_metrics.js
msgid "Unable to retrieve data, please try again later."
msgstr ""
#: lms/templates/class_dashboard/d3_stacked_bar_graph.js
msgid "%(num_students)s student opened Subsection"
msgid_plural "%(num_students)s students opened Subsection"
msgstr[0] ""
msgstr[1] ""
#: lms/templates/class_dashboard/d3_stacked_bar_graph.js
msgid "%(num_students)s student"
msgid_plural "%(num_students)s students"
msgstr[0] ""
msgstr[1] ""
#: lms/templates/class_dashboard/d3_stacked_bar_graph.js
msgid "%(num_questions)s question"
msgid_plural "%(num_questions)s questions"
msgstr[0] ""
msgstr[1] ""
#: lms/templates/class_dashboard/d3_stacked_bar_graph.js
msgid "Number of Students"
msgstr ""
#: cms/static/coffee/src/main.js
msgid ""
"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."
msgstr ""
#: cms/static/coffee/src/main.js
msgid "Studio's having trouble saving your work"
msgstr ""
#: cms/static/coffee/src/views/tabs.js cms/static/coffee/src/views/tabs.js
#: cms/static/coffee/src/views/unit.js
#: cms/static/coffee/src/xblock/cms.runtime.v1.js
#: cms/static/js/models/section.js cms/static/js/utils/drag_and_drop.js
#: cms/static/js/views/asset.js cms/static/js/views/container.js
#: cms/static/js/views/course_info_handout.js
#: cms/static/js/views/course_info_update.js cms/static/js/views/overview.js
#: cms/static/js/views/xblock_editor.js
msgid "Saving&hellip;"
msgstr ""
#: cms/static/coffee/src/views/tabs.js
msgid "Delete Page Confirmation"
msgstr ""
#: cms/static/coffee/src/views/tabs.js
msgid ""
"Are you sure you want to delete this page? This action cannot be undone."
msgstr ""
#: cms/static/coffee/src/views/tabs.js cms/static/coffee/src/views/unit.js
#: cms/static/js/base.js cms/static/js/views/course_info_update.js
#: cms/static/js/views/pages/container.js
msgid "Deleting&hellip;"
msgstr ""
#: cms/static/coffee/src/views/unit.js cms/static/js/views/pages/container.js
msgid "Duplicating&hellip;"
msgstr ""
#: cms/static/coffee/src/views/unit.js cms/static/js/views/pages/container.js
msgid "Delete this component?"
msgstr ""
#: cms/static/coffee/src/views/unit.js cms/static/js/views/pages/container.js
msgid "Deleting this component is permanent and cannot be undone."
msgstr ""
#: cms/static/coffee/src/views/unit.js cms/static/js/views/pages/container.js
msgid "Yes, delete this component"
msgstr ""
#: cms/static/js/base.js
msgid "This link will open in a modal window"
msgstr ""
#: cms/static/js/base.js
msgid "Delete this "
msgstr ""
#: cms/static/js/base.js
msgid "Deleting this "
msgstr ""
#: cms/static/js/base.js
msgid "Yes, delete this "
msgstr ""
#: cms/static/js/index.js
msgid "Please do not use any spaces in this field."
msgstr ""
#: cms/static/js/index.js
msgid "Please do not use any spaces or special characters in this field."
msgstr ""
#: cms/static/js/index.js
msgid ""
"The combined length of the organization, course number, and course run "
"fields cannot be more than 65 characters."
msgstr ""
#: cms/static/js/index.js
msgid "Required field."
msgstr ""
#: cms/static/js/sock.js
msgid "Hide Studio Help"
msgstr ""
#: cms/static/js/sock.js
msgid "Looking for Help with Studio?"
msgstr ""
#: cms/static/js/models/course.js cms/static/js/models/section.js
msgid "You must specify a name"
msgstr ""
#: cms/static/js/models/uploads.js
msgid ""
"Only <%= fileTypes %> files can be uploaded. Please select a file ending in "
"<%= fileExtensions %> to upload."
msgstr ""
#: cms/static/js/models/uploads.js
msgid "or"
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The course must have an assigned start date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The course end date cannot be before the course start date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The course start date cannot be before the enrollment start date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The enrollment start date cannot be after the enrollment end date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "The enrollment end date cannot be after the course end date."
msgstr ""
#: cms/static/js/models/settings/course_details.js
msgid "Key should only contain letters, numbers, _, or -"
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "There's already another assignment type with this name."
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "Please enter an integer between 0 and 100."
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "Please enter an integer greater than 0."
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "Please enter non-negative integer."
msgstr ""
#: cms/static/js/models/settings/course_grader.js
msgid "Cannot drop more <% attrs.types %> than will assigned."
msgstr ""
#: cms/static/js/models/settings/course_grading_policy.js
msgid "Grace period must be specified in HH:MM format."
msgstr ""
#: cms/static/js/views/asset.js
msgid "Delete File Confirmation"
msgstr ""
#: cms/static/js/views/asset.js
msgid ""
"Are you sure you wish to delete this item. It cannot be reversed!\n"
"\n"
"Also any content that links/refers to this item will no longer work (e.g. broken images and/or links)"
msgstr ""
#: cms/static/js/views/asset.js
msgid "Your file has been deleted."
msgstr ""
#: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore
msgid "Name"
msgstr ""
#: cms/static/js/views/assets.js cms/templates/js/asset-library.underscore
msgid "Date Added"
msgstr ""
#: cms/static/js/views/assets.js
msgid "Uploading…"
msgstr ""
#: cms/static/js/views/assets.js
#: cms/templates/js/asset-upload-modal.underscore
msgid "Choose File"
msgstr ""
#: cms/static/js/views/assets.js
#: cms/templates/js/asset-upload-modal.underscore
msgid "Upload New File"
msgstr ""
#: cms/static/js/views/assets.js
msgid "Load Another File"
msgstr ""
#: cms/static/js/views/course_info_update.js
msgid "Are you sure you want to delete this update?"
msgstr ""
#: cms/static/js/views/course_info_update.js
msgid "This action cannot be undone."
msgstr ""
#: cms/static/js/views/edit_chapter.js
msgid "Upload a new PDF to “<%= name %>”"
msgstr ""
#: cms/static/js/views/edit_chapter.js
msgid "Please select a PDF file to upload."
msgstr ""
#: cms/static/js/views/edit_textbook.js
#: cms/static/js/views/overview_assignment_grader.js
msgid "Saving"
msgstr ""
#: cms/static/js/views/import.js
msgid "There was an error with the upload"
msgstr ""
#: cms/static/js/views/import.js
msgid ""
"File format not supported. Please upload a file with a <code>tar.gz</code> "
"extension."
msgstr ""
#: cms/static/js/views/metadata.js
msgid "Upload File"
msgstr ""
#: cms/static/js/views/overview.js
msgid "Collapse All Sections"
msgstr ""
#: cms/static/js/views/overview.js
msgid "Expand All Sections"
msgstr ""
#: cms/static/js/views/overview.js
msgid "Release date:"
msgstr ""
#: cms/static/js/views/overview.js
msgid "{month}/{day}/{year} at {hour}:{minute} UTC"
msgstr ""
#: cms/static/js/views/overview.js
msgid "Edit section release date"
msgstr ""
#: cms/static/js/views/overview_assignment_grader.js
msgid "Not Graded"
msgstr ""
#. Translators: sample result: "Showing 0-9 out of 25 total, sorted by Date
#. Added ascending"
#: cms/static/js/views/paging_header.js
msgid ""
"Showing %(current_item_range)s out of %(total_items_count)s, sorted by "
"%(sort_name)s ascending"
msgstr ""
#. Translators: sample result: "Showing 0-9 out of 25 total, sorted by Date
#. Added descending"
#: cms/static/js/views/paging_header.js
msgid ""
"Showing %(current_item_range)s out of %(total_items_count)s, sorted by "
"%(sort_name)s descending"
msgstr ""
#. Translators: turns into "25 total" to be used in other sentences, e.g.
#. "Showing 0-9 out of 25 total".
#: cms/static/js/views/paging_header.js
msgid "%(total_items)s total"
msgstr ""
#: cms/static/js/views/section_edit.js
msgid "Your change could not be saved"
msgstr ""
#: cms/static/js/views/section_edit.js
msgid "Return and resolve this issue"
msgstr ""
#: cms/static/js/views/show_textbook.js
msgid "Delete “<%= name %>”?"
msgstr ""
#: cms/static/js/views/show_textbook.js
msgid ""
"Deleting a textbook cannot be undone and once deleted any reference to it in"
" your courseware's navigation will also be removed."
msgstr ""
#: cms/static/js/views/show_textbook.js
msgid "Deleting"
msgstr ""
#: cms/static/js/views/uploads.js
#: cms/templates/js/metadata-file-uploader-item.underscore
#: cms/templates/js/video/metadata-translations-item.underscore
msgid "Upload"
msgstr ""
#: cms/static/js/views/uploads.js
msgid "We're sorry, there was an error"
msgstr ""
#: cms/static/js/views/validation.js
msgid "You've made some changes"
msgstr ""
#: cms/static/js/views/validation.js
msgid "Your changes will not take effect until you save your progress."
msgstr ""
#: cms/static/js/views/validation.js
msgid "You've made some changes, but there are some errors"
msgstr ""
#: cms/static/js/views/validation.js
msgid ""
"Please address the errors on this page first, and then save your progress."
msgstr ""
#: cms/static/js/views/validation.js
msgid "Save Changes"
msgstr ""
#: cms/static/js/views/validation.js
msgid "Your changes have been saved."
msgstr ""
#: cms/static/js/views/xblock_editor.js
msgid "Editor"
msgstr ""
#: cms/static/js/views/xblock_editor.js
msgid "Settings"
msgstr ""
#: cms/static/js/views/components/add_xblock.js
msgid "Adding&hellip;"
msgstr ""
#: cms/static/js/views/modals/base_modal.js
#: cms/templates/js/edit-textbook.underscore
#: cms/templates/js/section-name-edit.underscore
msgid "Save"
msgstr ""
#: cms/static/js/views/modals/edit_xblock.js
msgid "Component"
msgstr ""
#: cms/static/js/views/modals/edit_xblock.js
msgid "Editing: %(title)s"
msgstr ""
#: cms/static/js/views/settings/advanced.js
msgid ""
"Your changes will not take effect until you save your progress. Take care "
"with key and value formatting, as validation is not implemented."
msgstr ""
#: cms/static/js/views/settings/advanced.js
msgid "Your policy changes have been saved."
msgstr ""
#: cms/static/js/views/settings/advanced.js
msgid ""
"Please note that validation of your policy key and value pairs is not "
"currently in place yet. If you are having difficulties, please review your "
"policy pairs."
msgstr ""
#: cms/static/js/views/settings/main.js
msgid "Upload your course image."
msgstr ""
#: cms/static/js/views/settings/main.js
msgid "Files must be in JPEG or PNG format."
msgstr ""
#: cms/static/js/views/video/translations_editor.js
msgid ""
"Sorry, there was an error parsing the subtitles that you uploaded. Please "
"check the format and try again."
msgstr ""
#: cms/static/js/views/video/translations_editor.js
msgid "Upload translation"
msgstr ""
#: common/templates/js/image-modal.underscore
msgid "Fullscreen"
msgstr ""
#: common/templates/js/image-modal.underscore
msgid "Large"
msgstr ""
#: common/templates/js/image-modal.underscore
msgid "Zoom In"
msgstr ""
#: common/templates/js/image-modal.underscore
msgid "Zoom Out"
msgstr ""
#: cms/templates/js/add-xblock-component-menu-problem.underscore
msgid "Common Problem Types"
msgstr ""
#: cms/templates/js/add-xblock-component-menu-problem.underscore
msgid "Advanced"
msgstr ""
#: cms/templates/js/add-xblock-component.underscore
msgid "Add New Component"
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "List of uploaded files and assets in this course"
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "Embed URL"
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "External URL"
msgstr ""
#: cms/templates/js/asset-library.underscore
#: cms/templates/js/basic-modal.underscore
msgid "Actions"
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "You haven't added any assets to this course yet."
msgstr ""
#: cms/templates/js/asset-library.underscore
msgid "Upload your first asset"
msgstr ""
#: cms/templates/js/asset-upload-modal.underscore
msgid "close"
msgstr ""
#: cms/templates/js/asset.underscore
msgid "Open/download this file"
msgstr ""
#: cms/templates/js/asset.underscore
msgid "Delete this asset"
msgstr ""
#: cms/templates/js/asset.underscore
msgid "Lock this asset"
msgstr ""
#: cms/templates/js/asset.underscore
msgid "Lock/unlock file"
msgstr ""
#: cms/templates/js/checklist.underscore
msgid "{number}% of checklists completed"
msgstr ""
#: cms/templates/js/checklist.underscore
msgid "Tasks Completed:"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Assignment Type Name"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "e.g. Homework, Midterm Exams"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Abbreviation"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "e.g. HW, Midterm"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Weight of Total Grade"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "as a percent, e.g. 40"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Total Number"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "total exercises assigned"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "Number of Droppable"
msgstr ""
#: cms/templates/js/course_grade_policy.underscore
msgid "total exercises that won't be graded"
msgstr ""
#: cms/templates/js/course_info_handouts.underscore
msgid "You have no handouts defined"
msgstr ""
#: cms/templates/js/course_info_handouts.underscore
msgid ""
"There is invalid code in your content. Please check to make sure it is valid"
" HTML."
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "Chapter Name"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "Chapter %s"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "provide the title/name of the chapter that will be used in navigating"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "Chapter Asset"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "path/to/introductionToCookieBaking-CH%d.pdf"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "upload a PDF file or provide the path to a Studio asset file"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "Upload PDF"
msgstr ""
#: cms/templates/js/edit-chapter.underscore
msgid "delete chapter"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "error.message"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Textbook information"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Textbook Name"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Introduction to Cookie Baking"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid ""
"provide the title/name of the text book as you would like your students to "
"see it"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Chapter information"
msgstr ""
#: cms/templates/js/edit-textbook.underscore
msgid "Add a Chapter"
msgstr ""
#: cms/templates/js/metadata-dict-entry.underscore
#: cms/templates/js/metadata-list-entry.underscore
#: cms/templates/js/video/metadata-translations-entry.underscore
msgid "Add"
msgstr ""
#: cms/templates/js/metadata-dict-entry.underscore
#: cms/templates/js/metadata-file-uploader-entry.underscore
#: cms/templates/js/metadata-list-entry.underscore
#: cms/templates/js/metadata-number-entry.underscore
#: cms/templates/js/metadata-option-entry.underscore
#: cms/templates/js/metadata-string-entry.underscore
#: cms/templates/js/mock/mock-xmodule-editor.underscore
#: cms/templates/js/mock/mock-xmodule-settings-only-editor.underscore
#: cms/templates/js/video/metadata-translations-entry.underscore
msgid "Clear Value"
msgstr ""
#: cms/templates/js/metadata-file-uploader-item.underscore
#: cms/templates/js/video/metadata-translations-item.underscore
msgid "Replace"
msgstr ""
#: cms/templates/js/metadata-file-uploader-item.underscore
#: cms/templates/js/video/metadata-translations-item.underscore
msgid "Download"
msgstr ""
#: cms/templates/js/no-textbooks.underscore
msgid "You haven't added any textbooks to this course yet."
msgstr ""
#: cms/templates/js/no-textbooks.underscore
msgid "Add your first textbook"
msgstr ""
#: cms/templates/js/paging-footer.underscore
#: cms/templates/js/paging-header.underscore
msgid "Previous"
msgstr ""
#: cms/templates/js/paging-footer.underscore
msgid "Page number"
msgstr ""
#: cms/templates/js/paging-footer.underscore
#: cms/templates/js/paging-header.underscore
msgid "Next"
msgstr ""
#: cms/templates/js/show-textbook.underscore
msgid "View Live"
msgstr ""
#: cms/templates/js/upload-dialog.underscore
msgid "File upload succeeded"
msgstr ""
#: cms/templates/js/video/transcripts/metadata-videolist-entry.underscore
msgid "Add URLs for additional versions"
msgstr ""
#: cms/templates/js/video/transcripts/metadata-videolist-entry.underscore
msgid ""
"To be sure all students can access the video, we recommend providing both an"
" .mp4 and a .webm version of your video. Click below to add a URL for "
"another version. These URLs cannot be YouTube URLs. The first listed video "
"that\\'s compatible with the student\\'s computer will play."
msgstr ""
#: cms/templates/js/video/transcripts/metadata-videolist-entry.underscore
msgid "Default Timed Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
msgid "Timed Transcript Conflict"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
msgid ""
"The timed transcript for the first video file does not appear to be the same"
" as the timed transcript for the second video file."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
msgid "Which timed transcript would you like to use?"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid "Error."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-choose.underscore
msgid "Timed Transcript from"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
msgid "Timed Transcript Found"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
msgid ""
"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."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid "Upload New Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
msgid "Upload New .srt Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
msgid "Download Transcript for Editing"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
msgid "No EdX Timed Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
msgid ""
"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."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-import.underscore
msgid "Import YouTube Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
msgid "No Timed Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-not-found.underscore
msgid ""
"EdX doesn\\'t have a timed transcript for this video. Please upload an .srt "
"file."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
msgid ""
"The timed transcript for this video on edX is out of date, but YouTube has a"
" current timed transcript for this video."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
msgid "Do you want to replace the edX transcript with the YouTube transcript?"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-replace.underscore
msgid "Yes, replace the edX transcript with the YouTube transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
msgid "Timed Transcript Uploaded Successfully"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-uploaded.underscore
msgid ""
"EdX has a timed transcript for this video. If you want to replace this "
"transcript, upload a new .srt transcript file. If you want to edit this "
"transcript, you can download, edit, and re-upload the existing transcript."
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid "Confirm Timed Transcript"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid ""
"You changed a video URL, but did not change the timed transcript file. Do "
"you want to use the current timed transcript or upload a new .srt transcript"
" file?"
msgstr ""
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
#: cms/templates/js/video/transcripts/messages/transcripts-use-existing.underscore
msgid "Use Current Transcript"
msgstr ""
......@@ -218,17 +218,19 @@ def get_module_for_descriptor(user, request, descriptor, field_data_cache, cours
track_function = make_track_function(request)
xqueue_callback_url_prefix = get_xqueue_callback_url_prefix(request)
user_location = getattr(request, 'session', {}).get('country_code')
return get_module_for_descriptor_internal(user, descriptor, field_data_cache, course_id,
track_function, xqueue_callback_url_prefix,
position, wrap_xmodule_display, grade_bucket_type,
static_asset_path)
static_asset_path, user_location)
def get_module_system_for_user(user, field_data_cache,
# Arguments preceding this comment have user binding, those following don't
descriptor, course_id, track_function, xqueue_callback_url_prefix,
position=None, wrap_xmodule_display=True, grade_bucket_type=None,
static_asset_path=''):
static_asset_path='', user_location=None):
"""
Helper function that returns a module system and student_data bound to a user and a descriptor.
......@@ -310,7 +312,7 @@ def get_module_system_for_user(user, field_data_cache,
return get_module_for_descriptor_internal(user, descriptor, field_data_cache, course_id,
track_function, make_xqueue_callback,
position, wrap_xmodule_display, grade_bucket_type,
static_asset_path)
static_asset_path, user_location)
def handle_grade_event(block, event_type, event):
user_id = event.get('user_id', user.id)
......@@ -379,7 +381,7 @@ def get_module_system_for_user(user, field_data_cache,
(inner_system, inner_student_data) = get_module_system_for_user(
real_user, field_data_cache_real_user, # These have implicit user bindings, rest of args considered not to
module.descriptor, course_id, track_function, xqueue_callback_url_prefix, position, wrap_xmodule_display,
grade_bucket_type, static_asset_path
grade_bucket_type, static_asset_path, user_location
)
# rebinds module to a different student. We'll change system, student_data, and scope_ids
module.descriptor.bind_for_student(
......@@ -500,6 +502,7 @@ def get_module_system_for_user(user, field_data_cache,
get_user_role=lambda: get_user_role(user, course_id),
descriptor_runtime=descriptor.runtime,
rebind_noauth_module_to_user=rebind_noauth_module_to_user,
user_location=user_location,
)
# pass position specified in URL to module through ModuleSystem
......@@ -525,7 +528,7 @@ def get_module_system_for_user(user, field_data_cache,
def get_module_for_descriptor_internal(user, descriptor, field_data_cache, course_id, # pylint: disable=invalid-name
track_function, xqueue_callback_url_prefix,
position=None, wrap_xmodule_display=True, grade_bucket_type=None,
static_asset_path=''):
static_asset_path='', user_location=None):
"""
Actually implement get_module, without requiring a request.
......@@ -541,7 +544,7 @@ def get_module_for_descriptor_internal(user, descriptor, field_data_cache, cours
(system, student_data) = get_module_system_for_user(
user, field_data_cache, # These have implicit user bindings, the rest of args are considered not to
descriptor, course_id, track_function, xqueue_callback_url_prefix, position, wrap_xmodule_display,
grade_bucket_type, static_asset_path
grade_bucket_type, static_asset_path, user_location
)
descriptor.bind_for_student(system, LmsFieldData(descriptor._field_data, student_data)) # pylint: disable=protected-access
......
......@@ -365,6 +365,105 @@ class TestGetHtmlMethod(BaseTestXmodule):
self.item_descriptor.xmodule_runtime.render_template('video.html', expected_context)
)
@patch('xmodule.video_module.video_module.get_video_from_cdn')
def test_get_html_cdn_source(self, mocked_get_video):
"""
Test if sources got from CDN.
"""
def side_effect(*args, **kwargs):
cdn = {
'http://example.com/example.mp4': 'http://cdn_example.com/example.mp4',
'http://example.com/example.webm': 'http://cdn_example.com/example.webm',
}
return cdn.get(args[1])
mocked_get_video.side_effect = side_effect
SOURCE_XML = """
<video show_captions="true"
display_name="A Name"
sub="a_sub_file.srt.sjson" source="{source}"
download_video="{download_video}"
start_time="01:00:03" end_time="01:00:10"
>
{sources}
</video>
"""
cases = [
#
{
'download_video': 'true',
'source': 'example_source.mp4',
'sources': """
<source src="http://example.com/example.mp4"/>
<source src="http://example.com/example.webm"/>
""",
'result': {
'download_video_link': u'example_source.mp4',
'sources': json.dumps(
[
u'http://cdn_example.com/example.mp4',
u'http://cdn_example.com/example.webm'
]
),
},
},
]
initial_context = {
'data_dir': getattr(self, 'data_dir', None),
'show_captions': 'true',
'handout': None,
'display_name': u'A Name',
'download_video_link': None,
'end': 3610.0,
'id': None,
'sources': '[]',
'speed': 'null',
'general_speed': 1.0,
'start': 3603.0,
'saved_video_position': 0.0,
'sub': u'a_sub_file.srt.sjson',
'track': None,
'youtube_streams': '1.00:OEoXaMPEzfM',
'autoplay': settings.FEATURES.get('AUTOPLAY_VIDEOS', True),
'yt_test_timeout': 1500,
'yt_api_url': 'www.youtube.com/iframe_api',
'yt_test_url': 'gdata.youtube.com/feeds/api/videos/',
'transcript_download_format': 'srt',
'transcript_download_formats_list': [{'display_name': 'SubRip (.srt) file', 'value': 'srt'}, {'display_name': 'Text (.txt) file', 'value': 'txt'}],
'transcript_language': u'en',
'transcript_languages': '{"en": "English"}',
}
for data in cases:
DATA = SOURCE_XML.format(
download_video=data['download_video'],
source=data['source'],
sources=data['sources']
)
self.initialize_module(data=DATA)
self.item_descriptor.xmodule_runtime.user_location = 'CN'
context = self.item_descriptor.render('student_view').content
expected_context = dict(initial_context)
expected_context.update({
'transcript_translation_url': self.item_descriptor.xmodule_runtime.handler_url(
self.item_descriptor, 'transcript', 'translation'
).rstrip('/?'),
'transcript_available_translations_url': self.item_descriptor.xmodule_runtime.handler_url(
self.item_descriptor, 'transcript', 'available_translations'
).rstrip('/?'),
'ajax_url': self.item_descriptor.xmodule_runtime.ajax_url + '/save_user_state',
'id': self.item_descriptor.location.html_id(),
})
expected_context.update(data['result'])
self.assertEqual(
context,
self.item_descriptor.xmodule_runtime.render_template('video.html', expected_context)
)
class TestVideoDescriptorInitialization(BaseTestXmodule):
"""
......
......@@ -7,6 +7,8 @@ from django.http import Http404
from edxmako.shortcuts import render_to_response
from opaque_keys.edx.locations import SlashSeparatedCourseKey
from xmodule.annotator_token import retrieve_token
from courseware.access import has_access
from courseware.courses import get_course_with_access
from notes.utils import notes_enabled_for_course
......@@ -170,5 +172,7 @@ def html_index(request, course_id, book_index, chapter=None):
'student': student,
'staff_access': staff_access,
'notes_enabled': notes_enabled,
'storage': course.annotation_storage_url,
'token': retrieve_token(student.email, course.annotation_token_secret),
},
)
......@@ -282,6 +282,10 @@ if FEATURES.get('AUTH_USE_CAS'):
HOSTNAME_MODULESTORE_DEFAULT_MAPPINGS = ENV_TOKENS.get('HOSTNAME_MODULESTORE_DEFAULT_MAPPINGS',{})
# Video Caching. Pairing country codes with CDN URLs.
# Example: {'CN': 'http://api.xuetangx.com/edx/video?s3_url='}
VIDEO_CDN_URL = ENV_TOKENS.get('VIDEO_CDN_URL', {})
############################## SECURE AUTH ITEMS ###############
# Secret things: passwords, access keys, etc.
......
......@@ -784,6 +784,7 @@ MIDDLEWARE_CLASSES = (
# Allows us to dark-launch particular languages
'dark_lang.middleware.DarkLangMiddleware',
'geoinfo.middleware.CountryMiddleware',
'embargo.middleware.EmbargoMiddleware',
# Allows us to set user preferences
......
......@@ -326,3 +326,7 @@ VERIFY_STUDENT["SOFTWARE_SECURE"] = {
"API_ACCESS_KEY": "BBBBBBBBBBBBBBBBBBBB",
"API_SECRET_KEY": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
}
VIDEO_CDN_URL = {
'CN': 'http://api.xuetangx.com/edx/video?s3_url='
}
......@@ -13,10 +13,9 @@ class StudentNotes
$(el).data('notes-instance', @)
# Initializes annotations on a container element in response to an init event.
onInitNotes: (event, uri=null) =>
onInitNotes: (event, uri=null, storage_url=null, token=null) =>
event.stopPropagation()
storeConfig = @getStoreConfig uri
found = @targets.some (target) -> target is event.target
# Get uri
......@@ -47,10 +46,10 @@ class StudentNotes
return user.id if user and user.id
user
auth:
tokenUrl: location.protocol+'//'+location.host+"/token?course_id="+courseid
token: token
store:
prefix: 'http://catch.aws.af.cm/annotator'
prefix: storage_url
annotationData: uri:uri
......@@ -88,33 +87,6 @@ class StudentNotes
else
@targets.push(event.target)
# Returns a JSON config object that can be passed to the annotator Store plugin
getStoreConfig: (uri) ->
prefix = @getPrefix()
if uri is null
uri = @getURIPath()
storeConfig =
prefix: prefix
loadFromSearch:
uri: uri
limit: 0
annotationData:
uri: uri
storeConfig
# Returns the API endpoint for the annotation store
getPrefix: () ->
re = /^(\/courses\/[^/]+\/[^/]+\/[^/]+)/
match = re.exec(@getURIPath())
prefix = (if match then match[1] else '')
return "#{prefix}/notes/api"
# Returns the URI path of the current page for filtering annotations
getURIPath: () ->
window.location.href.toString().split(window.location.host)[1]
# Enable notes by default on the document root.
# To initialize annotations on a container element in the document:
#
......
......@@ -11,8 +11,9 @@
</%block>
<%block name="js_extra">
<script type="text/javascript" src="${static.url('js/vendor/tinymce/js/tinymce/tinymce.full.min.js')}"></script>
<script type="text/javascript" src="${static.url('js/vendor/tinymce/js/tinymce/jquery.tinymce.min.js')}"></script>
<script type="text/javascript">
tinyMCE.baseURL = "${settings.STATIC_URL}" + "js/vendor/ova";
(function($) {
$.fn.myHTMLViewer = function(options) {
var urlToLoad = null;
......@@ -38,7 +39,7 @@
if(options.notesEnabled) {
onComplete = function(url) {
return function() {
$('#viewerContainer').trigger('notes:init', [url]);
$('#viewerContainer').trigger('notes:init', [url, "${storage}", "${token}"]);
}
};
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment