merge upstream/master
This commit is contained in:
@@ -44,8 +44,8 @@ output = reports/coverage.xml
|
||||
|
||||
[paths]
|
||||
jenkins_source =
|
||||
/home/jenkins/workspace/edx-platform-unit-coverage
|
||||
/home/jenkins/workspace/edx-platform-test-subset
|
||||
/home/jenkins/workspace/$JOB_NAME
|
||||
/home/jenkins/workspace/$SUBSET_JOB
|
||||
|
||||
devstack_source =
|
||||
/edx/app/edxapp/edx-platform
|
||||
|
||||
60
.eslintignore
Normal file
60
.eslintignore
Normal file
@@ -0,0 +1,60 @@
|
||||
# Vendor files and generated test artifacts
|
||||
**/vendor
|
||||
test_root/staticfiles
|
||||
|
||||
|
||||
# Vendor files living outside the /vendor/ dir
|
||||
*.min.js
|
||||
*-min.js
|
||||
*.nocache.js
|
||||
**/bootstrap*.js
|
||||
**/jquery*.js
|
||||
**/d3*.js
|
||||
|
||||
|
||||
# Translations files
|
||||
**/static/js/i18n
|
||||
|
||||
|
||||
# Gitignored xmodule stuff
|
||||
common/static/xmodule
|
||||
|
||||
|
||||
# Coffeescript directories (don't lint autogenerated files)
|
||||
cms/static/coffee
|
||||
lms/static/coffee
|
||||
common/static/coffee
|
||||
common/lib/capa/capa/tests/test_files/js
|
||||
|
||||
|
||||
# Symlinks into common/lib/xmodule/xmodule/js
|
||||
cms/static/xmodule_js
|
||||
lms/static/xmodule_js
|
||||
|
||||
|
||||
# This directory is about half Coffee and half JS, things get messy here so just ignore all existing coffee paths
|
||||
common/lib/xmodule/xmodule/js/spec/annotatable/display_spec.js
|
||||
common/lib/xmodule/xmodule/js/spec/capa/display_spec.js
|
||||
common/lib/xmodule/xmodule/js/spec/html/edit_spec.js
|
||||
common/lib/xmodule/xmodule/js/spec/problem/edit_spec.js
|
||||
common/lib/xmodule/xmodule/js/spec/problem/edit_spec_hint.js
|
||||
common/lib/xmodule/xmodule/js/spec/tabs/edit.js
|
||||
|
||||
common/lib/xmodule/xmodule/js/src/annotatable/display.js
|
||||
common/lib/xmodule/xmodule/js/src/capa/display.js
|
||||
common/lib/xmodule/xmodule/js/src/conditional/display.js
|
||||
common/lib/xmodule/xmodule/js/src/discussion/display.js
|
||||
common/lib/xmodule/xmodule/js/src/html/display.js
|
||||
common/lib/xmodule/xmodule/js/src/html/edit.js
|
||||
common/lib/xmodule/xmodule/js/src/javascript_loader.js
|
||||
common/lib/xmodule/xmodule/js/src/problem/edit.js
|
||||
common/lib/xmodule/xmodule/js/src/raw/edit/json.js
|
||||
common/lib/xmodule/xmodule/js/src/raw/edit/metadata-only.js
|
||||
common/lib/xmodule/xmodule/js/src/raw/edit/xml.js
|
||||
common/lib/xmodule/xmodule/js/src/sequence/display.js
|
||||
common/lib/xmodule/xmodule/js/src/sequence/edit.js
|
||||
common/lib/xmodule/xmodule/js/src/tabs/tabs-aggregator.js
|
||||
common/lib/xmodule/xmodule/js/src/vertical/edit.js
|
||||
|
||||
# This file is responsible for almost half of the repo's total issues.
|
||||
common/lib/xmodule/xmodule/js/src/capa/schematic.js
|
||||
23
.eslintrc.json
Normal file
23
.eslintrc.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"extends": "eslint-config-edx",
|
||||
"globals": { // Try to avoid adding any new globals.
|
||||
// Old compatibility things and hacks
|
||||
"edx": true,
|
||||
"XBlock": true,
|
||||
|
||||
// added by Django i18n tools
|
||||
"gettext": true,
|
||||
"ngettext": true,
|
||||
|
||||
// added by jasmine-jquery
|
||||
"loadFixtures": true,
|
||||
"appendLoadFixtures": true,
|
||||
"readFixtures": true,
|
||||
"setFixtures": true,
|
||||
"appendSetFixtures": true,
|
||||
"spyOnEvent": true,
|
||||
|
||||
// used by our requirejs implementation
|
||||
"RequireJS": true
|
||||
}
|
||||
}
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -98,6 +98,7 @@ cms/static/sass/*.css
|
||||
cms/static/sass/*.css.map
|
||||
cms/static/themed_sass/
|
||||
themes/**/css/*.css
|
||||
themes/**/css/discussion/*.css
|
||||
|
||||
### Logging artifacts
|
||||
log/
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
**/vendor
|
||||
cms/static/cms/js/build.js
|
||||
cms/static/cms/js/spec/main.js
|
||||
cms/static/js/i18n/**/*.js
|
||||
lms/static/js/i18n/**/*.js
|
||||
lms/static/lms/js/build.js
|
||||
lms/static/lms/js/spec/main.js
|
||||
node_modules
|
||||
venv
|
||||
154
.jshintrc
154
.jshintrc
@@ -1,154 +0,0 @@
|
||||
// --------------------------------------------------------------------
|
||||
// JSHint Configuration
|
||||
// --------------------------------------------------------------------
|
||||
//
|
||||
// http://www.jshint.com/
|
||||
// http://jshint.com/docs/options/
|
||||
{
|
||||
// == Enforcing Options ===============================================
|
||||
"bitwise" : false, // Prohibits the use of bitwise operators such as ^ (XOR), | (OR) and others. Bitwise operators are very rare in JavaScript programs and quite often & is simply a mistyped &&.
|
||||
"camelcase" : false, // Allows you to force all variable names to use either camelCase style or UPPER_CASE with underscores.
|
||||
"curly" : true, // Requires you to always put curly braces around blocks in loops and conditionals. JavaScript allows you to omit curly braces when the block consists of only one statement
|
||||
"eqeqeq" : true, // Prohibits the use of == and != in favor of === and !==.
|
||||
"es3" : false, // Tells JSHint that your code needs to adhere to ECMAScript 3 specification. Use this option if you need your program to be executable in older browsers—such as Internet Explorer 6/7/8/9.
|
||||
"forin" : true, // Requires all for in loops to filter object's items.
|
||||
"freeze" : true, // Prohibits overwriting prototypes of native objects such as Array, Date and so on.
|
||||
"immed" : true, // Prohibits the use of immediate function invocations without wrapping them in parentheses.
|
||||
// "indent" : 4, // Enforces specific tab width for your code. Has no effect when "white" option is not used.
|
||||
"latedef" : "nofunc", // Prohibits the use of a variable before it was defined. Setting this option to "nofunc" will allow function declarations to be ignored.
|
||||
"newcap" : false, // Requires you to capitalize names of constructor functions.
|
||||
"noarg" : true, // Prohibits the use of arguments.caller and arguments.callee.
|
||||
"noempty" : true, // Warns when you have an empty block in your code.
|
||||
"nonbsp" : true, // Warns about "non-breaking whitespace" characters.
|
||||
"nonew" : true, // Prohibits the use of constructor functions for side-effects.
|
||||
"plusplus" : false, // Prohibits the use of unary increment and decrement operators.
|
||||
"quotmark" : false, // Enforces the consistency of quotation marks used throughout your code. It accepts three values: true, "single", and "double".
|
||||
"undef" : true, // Prohibits the use of explicitly undeclared variables.
|
||||
"unused" : true, // Warns when you define and never use your variables.
|
||||
"strict" : true, // Requires all functions to run in ECMAScript 5's strict mode.
|
||||
"trailing" : true, // Makes it an error to leave a trailing whitespace in your code.
|
||||
"maxlen" : 120, // Lets you set the maximum length of a line.
|
||||
//"maxparams" : 4, // Lets you set the max number of formal parameters allowed per function.
|
||||
//"maxdepth" : 4, // Lets you control how nested do you want your blocks to be.
|
||||
//"maxstatements" : 4, // Lets you set the max number of statements allowed per function.
|
||||
//"maxcomplexity" : 4, // Lets you control cyclomatic complexity throughout your code.
|
||||
|
||||
|
||||
// == Relaxing Options ================================================
|
||||
"asi" : false, // Suppresses warnings about missing semicolons.
|
||||
"boss" : false, // Suppresses warnings about the use of assignments in cases where comparisons are expected.
|
||||
"debug" : false, // Suppresses warnings about the debugger statements in your code.
|
||||
"eqnull" : false, // Suppresses warnings about == null comparisons.
|
||||
"esnext" : false, // Tells JSHint that your code uses ECMAScript 6 specific syntax.
|
||||
"evil" : false, // Suppresses warnings about the use of eval.
|
||||
"expr" : false, // Suppresses warnings about the use of expressions where normally you would expect to see assignments or function calls.
|
||||
"funcscope" : false, // Suppresses warnings about declaring variables inside of control structures while accessing them later from the outside.
|
||||
"gcl" : false, // Makes JSHint compatible with Google Closure Compiler.
|
||||
"globalstrict" : false, // Suppresses warnings about the use of global strict mode.
|
||||
"iterator" : false, // Suppresses warnings about the __iterator__ property.
|
||||
"lastsemic" : false, // Suppresses warnings about missing semicolons, but only when the semicolon is omitted for the last statement in a one-line block.
|
||||
"laxbreak" : false, // Suppresses most of the warnings about possibly unsafe line breaks in your code.
|
||||
"laxcomma" : false, // Suppresses warnings about comma-first coding style.
|
||||
"loopfunc" : false, // Suppresses warnings about functions inside of loops.
|
||||
"maxerr" : 100, // Set the maximum amount of warnings JSHint will produce before giving up.
|
||||
"moz" : false, // Tells JSHint that your code uses Mozilla JavaScript extensions.
|
||||
"notypeof" : false, // Suppresses warnings about invalid typeof operator values.
|
||||
"proto" : false, // Suppresses warnings about the __proto__ property.
|
||||
"scripturl" : false, // Suppresses warnings about the use of script-targeted URLs—such as javascript:...
|
||||
"smarttabs" : false, // Suppresses warnings about mixed tabs and spaces when the latter are used for alignment only.
|
||||
"shadow" : false, // Suppresses warnings about variable shadowing i.e. declaring a variable that had been already declared somewhere in the outer scope.
|
||||
"sub" : false, // Suppresses warnings about using [] notation when it can be expressed in dot notation.
|
||||
"supernew" : false, // Suppresses warnings about "weird" constructions like new function () { ... } and new Object;.
|
||||
"validthis" : true, // Suppresses warnings about possible strict violations when the code is running in strict mode and you use this in a non-constructor function.
|
||||
"noyield" : false, // Suppresses warnings about generator functions with no yield statement in them.
|
||||
|
||||
|
||||
// == Environments ====================================================
|
||||
//
|
||||
// These options pre-define global variables that are exposed by
|
||||
// popular JavaScript libraries and runtime environments—such as
|
||||
// browser or node.js.
|
||||
"browser" : true, // Defines globals exposed by modern browsers: all the way from good old document and navigator to the HTML5 FileReader and other new developments in the browser world.
|
||||
"devel" : true, // Defines globals that are usually used for logging poor-man's debugging: console, alert, etc.
|
||||
// The rest should remain `false`. Please see explanation for the "predef" parameter below.
|
||||
"couch" : false, // Defines globals exposed by CouchDB.
|
||||
"dojo" : false, // Defines globals exposed by the Dojo Toolkit
|
||||
"jquery" : false, // Defines globals exposed by the jQuery JavaScript library.
|
||||
"mootools" : false, // Defines globals exposed by the MooTools JavaScript framework.
|
||||
"node" : false, // Defines globals available when your code is running inside of the Node runtime environment.
|
||||
"nonstandard" : false, // Defines non-standard but widely adopted globals such as escape and unescape.
|
||||
"phantom" : false, // Defines globals available when your core is running inside of the PhantomJS runtime environment.
|
||||
"prototypejs" : false, // Defines globals exposed by the Prototype JavaScript framework.
|
||||
"rhino" : false, // Defines globals available when your code is running inside of the Rhino runtime environment.
|
||||
"worker" : false, // Defines globals available when your code is running inside of a Web Worker.
|
||||
"wsh" : false, // Defines globals available when your code is running as a script for the Windows Script Host.
|
||||
"yui" : false, // Defines globals exposed by the YUI JavaScript framework.
|
||||
|
||||
|
||||
// == JSLint Legacy ===================================================
|
||||
//
|
||||
// These options are legacy from JSLint. Aside from bug fixes they will
|
||||
// not be improved in any way and might be removed at any point.
|
||||
// "nomen" : false, // Disallows the use of dangling _ in variables.
|
||||
// "onevar" : false, // Allows only one var statement per function.
|
||||
// "passfail" : false, // Makes JSHint stop on the first error or warning.
|
||||
// "white" : false, // make JSHint check your source code against Douglas Crockford's JavaScript coding style.
|
||||
|
||||
|
||||
// == Undocumented Options ============================================
|
||||
//
|
||||
// If you are using some global variable, for example `define`, or `$`, please
|
||||
// make it available within your JS file by passing it to the wrapper anonymous
|
||||
// function like so:
|
||||
//
|
||||
// (function (define, $) {
|
||||
// 'use strict';
|
||||
// // Your content goes here which uses `define`, and `$`.
|
||||
// }).call(this, window.define, window.jQuery);
|
||||
//
|
||||
// The parameter "predef" should remain empty for this configuration file
|
||||
// to remain as general as possible.
|
||||
"predef": [
|
||||
// JavaScript global libraries
|
||||
"Backbone",
|
||||
"jQuery",
|
||||
"$",
|
||||
"_",
|
||||
|
||||
// RequireJS globals
|
||||
"define",
|
||||
"require",
|
||||
"RequireJS",
|
||||
|
||||
// Jasmine globals
|
||||
"jasmine",
|
||||
"describe", "xdescribe",
|
||||
"it", "xit",
|
||||
"spyOn",
|
||||
"beforeEach",
|
||||
"afterEach",
|
||||
"expect",
|
||||
"waitsFor",
|
||||
"runs",
|
||||
|
||||
// jQuery-Jasmine globals
|
||||
"loadFixtures",
|
||||
"appendLoadFixtures",
|
||||
"readFixtures",
|
||||
"setFixtures",
|
||||
"appendSetFixtures",
|
||||
"spyOnEvent",
|
||||
|
||||
// Django i18n catalog globals
|
||||
"interpolate",
|
||||
"gettext",
|
||||
"ngettext",
|
||||
|
||||
// Miscellaneous globals
|
||||
"JSON",
|
||||
|
||||
// edX globals
|
||||
"edx",
|
||||
"XBlock"
|
||||
]
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
from lettuce import world, step
|
||||
from selenium.webdriver.common.keys import Keys
|
||||
from common import type_in_codemirror, upload_file
|
||||
from cms.djangoapps.contentstore.features.common import type_in_codemirror
|
||||
from django.conf import settings
|
||||
|
||||
from nose.tools import assert_true, assert_false
|
||||
|
||||
@@ -2,46 +2,6 @@
|
||||
Feature: CMS.Course updates
|
||||
As a course author, I want to be able to provide updates to my students
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/20/2016
|
||||
# Internet explorer can't select all so the update appears weirdly
|
||||
# @skip_internetexplorer
|
||||
# Scenario: Users can add updates
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# When I add a new update with the text "Hello"
|
||||
# Then I should see the update "Hello"
|
||||
# And I see a "saving" notification
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/20/2016
|
||||
# # Internet explorer can't select all so the update appears weirdly
|
||||
# @skip_internetexplorer
|
||||
# Scenario: Users can edit updates
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# When I add a new update with the text "Hello"
|
||||
# And I modify the text to "Goodbye"
|
||||
# Then I should see the update "Goodbye"
|
||||
# And I see a "saving" notification
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/20/2016
|
||||
# Scenario: Users can delete updates
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# And I add a new update with the text "Hello"
|
||||
# And I delete the update
|
||||
# And I confirm the prompt
|
||||
# Then I should not see the update "Hello"
|
||||
# And I see a "deleting" notification
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/20/2016
|
||||
# Scenario: Users can edit update dates
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# And I add a new update with the text "Hello"
|
||||
# When I edit the date to "06/01/13"
|
||||
# Then I should see the date "June 1, 2013"
|
||||
# And I see a "saving" notification
|
||||
|
||||
# Internet explorer can't select all so the update appears weirdly
|
||||
@skip_internetexplorer
|
||||
Scenario: Users can change handouts
|
||||
@@ -51,26 +11,6 @@ Feature: CMS.Course updates
|
||||
Then I see the handout "Test"
|
||||
And I see a "saving" notification
|
||||
|
||||
Scenario: Text outside of tags is preserved
|
||||
Given I have opened a new course in Studio
|
||||
And I go to the course updates page
|
||||
When I add a new update with the text "before <strong>middle</strong> after"
|
||||
Then I should see the update "before <strong>middle</strong> after"
|
||||
And when I reload the page
|
||||
Then I should see the update "before <strong>middle</strong> after"
|
||||
|
||||
# Commenting out as flaky TNL-5051 07/22/2016
|
||||
# Scenario: Static links are rewritten when previewing a course update
|
||||
# Given I have opened a new course in Studio
|
||||
# And I go to the course updates page
|
||||
# When I add a new update with the text "<img src='/static/my_img.jpg'/>"
|
||||
# # Can only do partial text matches because of the quotes with in quotes (and regexp step matching).
|
||||
# Then I should see the asset update to "my_img.jpg"
|
||||
# And I change the update from "/static/my_img.jpg" to "<img src='/static/modified.jpg'/>"
|
||||
# Then I should see the asset update to "modified.jpg"
|
||||
# And when I reload the page
|
||||
# Then I should see the asset update to "modified.jpg"
|
||||
|
||||
Scenario: Static links are rewritten when previewing handouts
|
||||
Given I have opened a new course in Studio
|
||||
And I go to the course updates page
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
# pylint: disable=missing-docstring
|
||||
|
||||
from cms.djangoapps.contentstore.features.common import type_in_codemirror, get_codemirror_value
|
||||
from lettuce import world, step
|
||||
from selenium.webdriver.common.keys import Keys
|
||||
from common import type_in_codemirror, get_codemirror_value
|
||||
from nose.tools import assert_in
|
||||
|
||||
|
||||
@@ -15,77 +14,11 @@ def go_to_updates(_step):
|
||||
world.wait_for_visible('#course-handouts-view')
|
||||
|
||||
|
||||
@step(u'I add a new update with the text "([^"]*)"$')
|
||||
def add_update(_step, text):
|
||||
update_css = '.new-update-button'
|
||||
world.css_click(update_css)
|
||||
world.wait_for_visible('.CodeMirror')
|
||||
change_text(text)
|
||||
|
||||
|
||||
@step(u'I should see the update "([^"]*)"$')
|
||||
def check_update(_step, text):
|
||||
update_css = 'div.update-contents'
|
||||
update_html = world.css_find(update_css).html
|
||||
assert_in(text, update_html)
|
||||
|
||||
|
||||
@step(u'I should see the asset update to "([^"]*)"$')
|
||||
def check_asset_update(_step, asset_file):
|
||||
update_css = 'div.update-contents'
|
||||
update_html = world.css_find(update_css).html
|
||||
asset_key = world.scenario_dict['COURSE'].id.make_asset_key(asset_type='asset', path=asset_file)
|
||||
assert_in(unicode(asset_key), update_html)
|
||||
|
||||
|
||||
@step(u'I should not see the update "([^"]*)"$')
|
||||
def check_no_update(_step, text):
|
||||
update_css = 'div.update-contents'
|
||||
assert world.is_css_not_present(update_css)
|
||||
|
||||
|
||||
@step(u'I modify the text to "([^"]*)"$')
|
||||
def modify_update(_step, text):
|
||||
button_css = 'div.post-preview .edit-button'
|
||||
world.css_click(button_css)
|
||||
change_text(text)
|
||||
|
||||
|
||||
@step(u'I change the update from "([^"]*)" to "([^"]*)"$')
|
||||
def change_existing_update(_step, before, after):
|
||||
verify_text_in_editor_and_update('div.post-preview .edit-button', before, after)
|
||||
|
||||
|
||||
@step(u'I change the handout from "([^"]*)" to "([^"]*)"$')
|
||||
def change_existing_handout(_step, before, after):
|
||||
verify_text_in_editor_and_update('div.course-handouts .edit-button', before, after)
|
||||
|
||||
|
||||
@step(u'I delete the update$')
|
||||
def click_button(_step):
|
||||
button_css = 'div.post-preview .delete-button'
|
||||
world.css_click(button_css)
|
||||
|
||||
|
||||
@step(u'I edit the date to "([^"]*)"$')
|
||||
def change_date(_step, new_date):
|
||||
button_css = 'div.post-preview .edit-button'
|
||||
world.css_click(button_css)
|
||||
date_css = 'input.date'
|
||||
date = world.css_find(date_css)
|
||||
for i in range(len(date.value)):
|
||||
date._element.send_keys(Keys.END, Keys.BACK_SPACE)
|
||||
date._element.send_keys(new_date)
|
||||
save_css = '.save-button'
|
||||
world.css_click(save_css)
|
||||
|
||||
|
||||
@step(u'I should see the date "([^"]*)"$')
|
||||
def check_date(_step, date):
|
||||
date_css = 'span.date-display'
|
||||
assert_in(date, world.css_html(date_css))
|
||||
|
||||
|
||||
@step(u'I modify the handout to "([^"]*)"$')
|
||||
def edit_handouts(_step, text):
|
||||
edit_css = 'div.course-handouts > .edit-button'
|
||||
|
||||
@@ -19,7 +19,7 @@ def view_grading_settings(step):
|
||||
@step(u'I add "([^"]*)" new grade')
|
||||
def add_grade(step, many):
|
||||
grade_css = '.new-grade-button'
|
||||
for i in range(int(many)):
|
||||
for __ in range(int(many)):
|
||||
world.css_click(grade_css)
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ def set_weight(step, weight):
|
||||
weight_id = '#course-grading-assignment-gradeweight'
|
||||
weight_field = world.css_find(weight_id)[-1]
|
||||
old_weight = world.css_value(weight_id, -1)
|
||||
for count in range(len(old_weight)):
|
||||
for __ in range(len(old_weight)):
|
||||
weight_field._element.send_keys(Keys.END, Keys.BACK_SPACE)
|
||||
weight_field._element.send_keys(weight)
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ def check_textbook(_step, textbook_name, chapter_name):
|
||||
assert_equal(chapter, chapter_name)
|
||||
|
||||
|
||||
@step(u'I should see a textbook named "([^"]*)" with (\d+) chapters')
|
||||
@step(r'I should see a textbook named "([^"]*)" with (\d+) chapters')
|
||||
def check_textbook_chapters(_step, textbook_name, num_chapters_str):
|
||||
num_chapters = int(num_chapters_str)
|
||||
title = world.css_text(".textbook .view-textbook h3.textbook-title", index=0)
|
||||
|
||||
@@ -134,7 +134,7 @@ def i_see_button(_step, not_see, button_type):
|
||||
assert world.css_has_text(TRANSCRIPTS_BUTTONS[button][0], TRANSCRIPTS_BUTTONS[button][1])
|
||||
|
||||
|
||||
@step('I (.*)see (.*)button "([^"]*)" number (\d+)$')
|
||||
@step(r'I (.*)see (.*)button "([^"]*)" number (\d+)$')
|
||||
def i_see_button_with_custom_text(_step, not_see, button_type, custom_text, index):
|
||||
button = button_type.strip()
|
||||
custom_text = custom_text.strip()
|
||||
@@ -153,7 +153,7 @@ def click_button_transcripts_variant(_step, button_type):
|
||||
world.wait_for_ajax_complete()
|
||||
|
||||
|
||||
@step('I click transcript button "([^"]*)" number (\d+)$')
|
||||
@step(r'I click transcript button "([^"]*)" number (\d+)$')
|
||||
def click_button_index(_step, button_type, index):
|
||||
button = button_type.strip()
|
||||
index = int(index.strip()) - 1
|
||||
@@ -178,7 +178,7 @@ def remove_transcripts_from_store(_step, subs_id):
|
||||
print 'Transcript file was NOT found and not removed.'
|
||||
|
||||
|
||||
@step('I enter a "([^"]+)" source to field number (\d+)$')
|
||||
@step(r'I enter a "([^"]+)" source to field number (\d+)$')
|
||||
def i_enter_a_source(_step, link, index):
|
||||
index = int(index) - 1
|
||||
|
||||
|
||||
@@ -61,3 +61,35 @@ class TestCreateCourse(ModuleStoreTestCase):
|
||||
)
|
||||
# pylint: disable=protected-access
|
||||
self.assertEqual(store, modulestore()._get_modulestore_for_courselike(new_key).get_modulestore_type())
|
||||
|
||||
@ddt.data(ModuleStoreEnum.Type.split, ModuleStoreEnum.Type.mongo)
|
||||
def test_get_course_with_different_case(self, default_store):
|
||||
"""
|
||||
Tests that course can not be accessed with different case.
|
||||
|
||||
Scenario:
|
||||
Create a course with lower case keys inside `bulk_operations` with `ignore_case=True`.
|
||||
Verify that course is created.
|
||||
Verify that get course from store using same course id but different case is not accessible.
|
||||
"""
|
||||
org = 'org1'
|
||||
number = 'course1'
|
||||
run = 'run1'
|
||||
with self.store.default_store(default_store):
|
||||
lowercase_course_id = self.store.make_course_key(org, number, run)
|
||||
with self.store.bulk_operations(lowercase_course_id, ignore_case=True):
|
||||
# Create course with lowercase key & Verify that store returns course.
|
||||
self.store.create_course(
|
||||
lowercase_course_id.org,
|
||||
lowercase_course_id.course,
|
||||
lowercase_course_id.run,
|
||||
self.user.id
|
||||
)
|
||||
course = self.store.get_course(lowercase_course_id)
|
||||
self.assertIsNotNone(course, 'Course not found using lowercase course key.')
|
||||
self.assertEqual(unicode(course.id), unicode(lowercase_course_id))
|
||||
|
||||
# Verify store does not return course with different case.
|
||||
uppercase_course_id = self.store.make_course_key(org.upper(), number.upper(), run.upper())
|
||||
course = self.store.get_course(uppercase_course_id)
|
||||
self.assertIsNone(course, 'Course should not be accessed with uppercase course id.')
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
import copy
|
||||
import mock
|
||||
from mock import patch
|
||||
import shutil
|
||||
import lxml.html
|
||||
from lxml import etree
|
||||
@@ -475,12 +474,12 @@ class ImportRequiredTestCases(ContentStoreTestCase):
|
||||
renamed_chapter = [item for item in all_items if item.location.block_id == 'renamed_chapter'][0]
|
||||
self.assertIsNotNone(renamed_chapter.published_on)
|
||||
self.assertIsNotNone(renamed_chapter.parent)
|
||||
self.assertTrue(renamed_chapter.location in course_after_rename[0].children)
|
||||
self.assertIn(renamed_chapter.location, course_after_rename[0].children)
|
||||
original_chapter = [item for item in all_items
|
||||
if item.location.block_id == 'b9870b9af59841a49e6e02765d0e3bbf'][0]
|
||||
self.assertIsNone(original_chapter.published_on)
|
||||
self.assertIsNone(original_chapter.parent)
|
||||
self.assertFalse(original_chapter.location in course_after_rename[0].children)
|
||||
self.assertNotIn(original_chapter.location, course_after_rename[0].children)
|
||||
|
||||
def test_empty_data_roundtrip(self):
|
||||
"""
|
||||
@@ -935,7 +934,7 @@ class MiscCourseTests(ContentStoreTestCase):
|
||||
|
||||
def test_import_polls(self):
|
||||
items = self.store.get_items(self.course.id, qualifiers={'category': 'poll_question'})
|
||||
self.assertTrue(len(items) > 0)
|
||||
self.assertGreater(len(items), 0)
|
||||
# check that there's actually content in the 'question' field
|
||||
self.assertGreater(len(items[0].question), 0)
|
||||
|
||||
@@ -1152,6 +1151,9 @@ class ContentStoreTest(ContentStoreTestCase, XssTestMixin):
|
||||
"""
|
||||
Tests for the CMS ContentStore application.
|
||||
"""
|
||||
duplicate_course_error = ("There is already a course defined with the same organization and course number. "
|
||||
"Please change either organization or course number to be unique.")
|
||||
|
||||
def setUp(self):
|
||||
super(ContentStoreTest, self).setUp()
|
||||
|
||||
@@ -1204,6 +1206,22 @@ class ContentStoreTest(ContentStoreTestCase, XssTestMixin):
|
||||
self.course_data['run'] = 'run.name'
|
||||
self.assert_created_course()
|
||||
|
||||
@ddt.data(ModuleStoreEnum.Type.split, ModuleStoreEnum.Type.mongo)
|
||||
def test_course_with_different_cases(self, default_store):
|
||||
"""
|
||||
Tests that course can not be created with different case using an AJAX request to
|
||||
course handler.
|
||||
"""
|
||||
course_number = '99x'
|
||||
with self.store.default_store(default_store):
|
||||
# Verify create a course passes with lower case.
|
||||
self.course_data['number'] = course_number.lower()
|
||||
self.assert_created_course()
|
||||
|
||||
# Verify create a course fail when same course number is provided with different case.
|
||||
self.course_data['number'] = course_number.upper()
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
def test_create_course_check_forum_seeding(self):
|
||||
"""Test new course creation and verify forum seeding """
|
||||
test_course_data = self.assert_created_course(number_suffix=uuid4().hex)
|
||||
@@ -1265,7 +1283,7 @@ class ContentStoreTest(ContentStoreTestCase, XssTestMixin):
|
||||
|
||||
auth.add_users(self.user, instructor_role, self.user)
|
||||
|
||||
self.assertTrue(len(instructor_role.users_with_role()) > 0)
|
||||
self.assertGreater(len(instructor_role.users_with_role()), 0)
|
||||
|
||||
# Now delete course and check that user not in instructor groups of this course
|
||||
delete_course_and_groups(course_id, self.user.id)
|
||||
@@ -1290,7 +1308,7 @@ class ContentStoreTest(ContentStoreTestCase, XssTestMixin):
|
||||
def test_create_course_duplicate_course(self):
|
||||
"""Test new course creation - error path"""
|
||||
self.client.ajax_post('/course/', self.course_data)
|
||||
self.assert_course_creation_failed('There is already a course defined with the same organization and course number. Please change either organization or course number to be unique.')
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
def assert_course_creation_failed(self, error_message):
|
||||
"""
|
||||
@@ -1319,21 +1337,38 @@ class ContentStoreTest(ContentStoreTestCase, XssTestMixin):
|
||||
self.course_data['display_name'] = 'Robot Super Course Two'
|
||||
self.course_data['run'] = '2013_Summer'
|
||||
|
||||
self.assert_course_creation_failed('There is already a course defined with the same organization and course number. Please change either organization or course number to be unique.')
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
def test_create_course_case_change(self):
|
||||
@ddt.data(ModuleStoreEnum.Type.split, ModuleStoreEnum.Type.mongo)
|
||||
def test_create_course_case_change(self, default_store):
|
||||
"""Test new course creation - error path due to case insensitive name equality"""
|
||||
self.course_data['number'] = 'capital'
|
||||
self.client.ajax_post('/course/', self.course_data)
|
||||
cache_current = self.course_data['org']
|
||||
self.course_data['org'] = self.course_data['org'].lower()
|
||||
self.assert_course_creation_failed('There is already a course defined with the same organization and course number. Please change either organization or course number to be unique.')
|
||||
self.course_data['org'] = cache_current
|
||||
self.course_data['number'] = '99x'
|
||||
|
||||
self.client.ajax_post('/course/', self.course_data)
|
||||
cache_current = self.course_data['number']
|
||||
self.course_data['number'] = self.course_data['number'].upper()
|
||||
self.assert_course_creation_failed('There is already a course defined with the same organization and course number. Please change either organization or course number to be unique.')
|
||||
with self.store.default_store(default_store):
|
||||
|
||||
# Verify that the course was created properly.
|
||||
self.assert_created_course()
|
||||
|
||||
# Keep the copy of original org
|
||||
cache_current = self.course_data['org']
|
||||
|
||||
# Change `org` to lower case and verify that course did not get created
|
||||
self.course_data['org'] = self.course_data['org'].lower()
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
# Replace the org with its actual value, and keep the copy of course number.
|
||||
self.course_data['org'] = cache_current
|
||||
cache_current = self.course_data['number']
|
||||
|
||||
self.course_data['number'] = self.course_data['number'].upper()
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
# Replace the org with its actual value, and keep the copy of course number.
|
||||
self.course_data['number'] = cache_current
|
||||
__ = self.course_data['run']
|
||||
|
||||
self.course_data['run'] = self.course_data['run'].upper()
|
||||
self.assert_course_creation_failed(self.duplicate_course_error)
|
||||
|
||||
def test_course_substring(self):
|
||||
"""
|
||||
|
||||
@@ -167,13 +167,13 @@ class CourseDetailsViewTest(CourseTestCase, MilestonesTestCaseMixin):
|
||||
elif field in encoded and encoded[field] is not None:
|
||||
self.fail(field + " included in encoding but missing from details at " + context)
|
||||
|
||||
@mock.patch.dict("django.conf.settings.FEATURES", {'ENABLE_PREREQUISITE_COURSES': True, 'MILESTONES_APP': True})
|
||||
@mock.patch.dict("django.conf.settings.FEATURES", {'ENABLE_PREREQUISITE_COURSES': True})
|
||||
def test_pre_requisite_course_list_present(self):
|
||||
settings_details_url = get_url(self.course.id)
|
||||
response = self.client.get_html(settings_details_url)
|
||||
self.assertContains(response, "Prerequisite Course")
|
||||
|
||||
@mock.patch.dict("django.conf.settings.FEATURES", {'ENABLE_PREREQUISITE_COURSES': True, 'MILESTONES_APP': True})
|
||||
@mock.patch.dict("django.conf.settings.FEATURES", {'ENABLE_PREREQUISITE_COURSES': True})
|
||||
def test_pre_requisite_course_update_and_fetch(self):
|
||||
url = get_url(self.course.id)
|
||||
resp = self.client.get_json(url)
|
||||
@@ -200,7 +200,7 @@ class CourseDetailsViewTest(CourseTestCase, MilestonesTestCaseMixin):
|
||||
course_detail_json = json.loads(resp.content)
|
||||
self.assertEqual([], course_detail_json['pre_requisite_courses'])
|
||||
|
||||
@mock.patch.dict("django.conf.settings.FEATURES", {'ENABLE_PREREQUISITE_COURSES': True, 'MILESTONES_APP': True})
|
||||
@mock.patch.dict("django.conf.settings.FEATURES", {'ENABLE_PREREQUISITE_COURSES': True})
|
||||
def test_invalid_pre_requisite_course(self):
|
||||
url = get_url(self.course.id)
|
||||
resp = self.client.get_json(url)
|
||||
@@ -219,6 +219,7 @@ class CourseDetailsViewTest(CourseTestCase, MilestonesTestCaseMixin):
|
||||
(False, True, False),
|
||||
(True, True, True),
|
||||
)
|
||||
@override_settings(MKTG_URLS={'ROOT': 'dummy-root'})
|
||||
def test_visibility_of_entrance_exam_section(self, feature_flags):
|
||||
"""
|
||||
Tests entrance exam section is available if ENTRANCE_EXAMS feature is enabled no matter any other
|
||||
@@ -805,7 +806,7 @@ class CourseMetadataEditingTest(CourseTestCase):
|
||||
user=self.user
|
||||
)
|
||||
self.assertTrue(is_valid)
|
||||
self.assertTrue(len(errors) == 0)
|
||||
self.assertEqual(len(errors), 0)
|
||||
self.update_check(test_model)
|
||||
|
||||
# Tab gets tested in test_advanced_settings_munge_tabs
|
||||
@@ -1161,6 +1162,7 @@ id=\"course-enrollment-end-time\" value=\"\" placeholder=\"HH:MM\" autocomplete=
|
||||
self._verify_editable(self._get_course_details_response(False))
|
||||
|
||||
@mock.patch.dict("django.conf.settings.FEATURES", {'ENABLE_MKTG_SITE': True})
|
||||
@override_settings(MKTG_URLS={'ROOT': 'dummy-root'})
|
||||
def test_course_details_with_enabled_setting_global_staff(self):
|
||||
""" Test that user enrollment end date is editable in response.
|
||||
|
||||
@@ -1170,6 +1172,7 @@ id=\"course-enrollment-end-time\" value=\"\" placeholder=\"HH:MM\" autocomplete=
|
||||
self._verify_editable(self._get_course_details_response(True))
|
||||
|
||||
@mock.patch.dict("django.conf.settings.FEATURES", {'ENABLE_MKTG_SITE': True})
|
||||
@override_settings(MKTG_URLS={'ROOT': 'dummy-root'})
|
||||
def test_course_details_with_enabled_setting_non_global_staff(self):
|
||||
""" Test that user enrollment end date is not editable in response.
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ from contentstore.tests.utils import AjaxEnabledTestClient
|
||||
from xmodule.modulestore.django import ModuleI18nService
|
||||
from django.utils import translation
|
||||
from django.utils.translation import get_language
|
||||
from django.conf import settings
|
||||
from xmodule.modulestore.tests.factories import ItemFactory, CourseFactory
|
||||
from contentstore.views.preview import _preview_module_system
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ from student.roles import (
|
||||
CourseInstructorRole, CourseStaffRole, CourseCreatorRole, LibraryUserRole,
|
||||
OrgStaffRole, OrgInstructorRole, OrgLibraryUserRole,
|
||||
)
|
||||
from xblock.reference.user_service import XBlockUser
|
||||
from xmodule.modulestore import ModuleStoreEnum
|
||||
from xmodule.modulestore.django import modulestore
|
||||
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
||||
@@ -65,7 +64,7 @@ class LibraryTestCase(ModuleStoreTestCase):
|
||||
self.assertIsInstance(lib_key, LibraryLocator)
|
||||
return lib_key
|
||||
|
||||
def _add_library_content_block(self, course, library_key, other_settings=None):
|
||||
def _add_library_content_block(self, course, library_key, publish_item=False, other_settings=None):
|
||||
"""
|
||||
Helper method to add a LibraryContent block to a course.
|
||||
The block will be configured to select content from the library
|
||||
@@ -76,7 +75,7 @@ class LibraryTestCase(ModuleStoreTestCase):
|
||||
category='library_content',
|
||||
parent_location=course.location,
|
||||
user_id=self.user.id,
|
||||
publish_item=False,
|
||||
publish_item=publish_item,
|
||||
source_library_id=unicode(library_key),
|
||||
**(other_settings or {})
|
||||
)
|
||||
@@ -160,7 +159,7 @@ class TestLibraries(LibraryTestCase):
|
||||
with modulestore().default_store(ModuleStoreEnum.Type.split):
|
||||
course = CourseFactory.create()
|
||||
|
||||
lc_block = self._add_library_content_block(course, self.lib_key, {'max_count': num_to_select})
|
||||
lc_block = self._add_library_content_block(course, self.lib_key, other_settings={'max_count': num_to_select})
|
||||
self.assertEqual(len(lc_block.children), 0)
|
||||
lc_block = self._refresh_children(lc_block)
|
||||
|
||||
@@ -490,7 +489,7 @@ class TestLibraryAccess(SignalDisconnectTestMixin, LibraryTestCase):
|
||||
|
||||
def _assert_cannot_create_library(self, org="org", library="libfail", expected_code=403):
|
||||
""" Ensure the current user is not able to create a library. """
|
||||
self.assertTrue(expected_code >= 300)
|
||||
self.assertGreaterEqual(expected_code, 300)
|
||||
response = self.client.ajax_post(
|
||||
LIBRARY_REST_URL,
|
||||
{'org': org, 'library': library, 'display_name': "Irrelevant"}
|
||||
|
||||
@@ -2,10 +2,8 @@
|
||||
import collections
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import mock
|
||||
from pytz import UTC
|
||||
from django.test import TestCase
|
||||
from django.test.utils import override_settings
|
||||
from xmodule.modulestore import ModuleStoreEnum
|
||||
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
|
||||
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase, SharedModuleStoreTestCase
|
||||
@@ -20,53 +18,6 @@ from contentstore.tests.utils import CourseTestCase
|
||||
class LMSLinksTestCase(TestCase):
|
||||
""" Tests for LMS links. """
|
||||
|
||||
def about_page_test(self):
|
||||
""" Get URL for about page, no marketing site """
|
||||
# default for ENABLE_MKTG_SITE is False.
|
||||
self.assertEquals(self.get_about_page_link(), "//localhost:8000/courses/mitX/101/test/about")
|
||||
|
||||
@override_settings(MKTG_URLS={'ROOT': 'dummy-root'})
|
||||
def about_page_marketing_site_test(self):
|
||||
""" Get URL for about page, marketing root present. """
|
||||
with mock.patch.dict('django.conf.settings.FEATURES', {'ENABLE_MKTG_SITE': True}):
|
||||
self.assertEquals(self.get_about_page_link(), "//dummy-root/courses/mitX/101/test/about")
|
||||
with mock.patch.dict('django.conf.settings.FEATURES', {'ENABLE_MKTG_SITE': False}):
|
||||
self.assertEquals(self.get_about_page_link(), "//localhost:8000/courses/mitX/101/test/about")
|
||||
|
||||
@override_settings(MKTG_URLS={'ROOT': 'http://www.dummy'})
|
||||
def about_page_marketing_site_remove_http_test(self):
|
||||
""" Get URL for about page, marketing root present, remove http://. """
|
||||
with mock.patch.dict('django.conf.settings.FEATURES', {'ENABLE_MKTG_SITE': True}):
|
||||
self.assertEquals(self.get_about_page_link(), "//www.dummy/courses/mitX/101/test/about")
|
||||
|
||||
@override_settings(MKTG_URLS={'ROOT': 'https://www.dummy'})
|
||||
def about_page_marketing_site_remove_https_test(self):
|
||||
""" Get URL for about page, marketing root present, remove https://. """
|
||||
with mock.patch.dict('django.conf.settings.FEATURES', {'ENABLE_MKTG_SITE': True}):
|
||||
self.assertEquals(self.get_about_page_link(), "//www.dummy/courses/mitX/101/test/about")
|
||||
|
||||
@override_settings(MKTG_URLS={'ROOT': 'www.dummyhttps://x'})
|
||||
def about_page_marketing_site_https__edge_test(self):
|
||||
""" Get URL for about page, only remove https:// at the beginning of the string. """
|
||||
with mock.patch.dict('django.conf.settings.FEATURES', {'ENABLE_MKTG_SITE': True}):
|
||||
self.assertEquals(self.get_about_page_link(), "//www.dummyhttps://x/courses/mitX/101/test/about")
|
||||
|
||||
@override_settings(MKTG_URLS={})
|
||||
def about_page_marketing_urls_not_set_test(self):
|
||||
""" Error case. ENABLE_MKTG_SITE is True, but there is either no MKTG_URLS, or no MKTG_URLS Root property. """
|
||||
with mock.patch.dict('django.conf.settings.FEATURES', {'ENABLE_MKTG_SITE': True}):
|
||||
self.assertEquals(self.get_about_page_link(), None)
|
||||
|
||||
@override_settings(LMS_BASE=None)
|
||||
def about_page_no_lms_base_test(self):
|
||||
""" No LMS_BASE, nor is ENABLE_MKTG_SITE True """
|
||||
self.assertEquals(self.get_about_page_link(), None)
|
||||
|
||||
def get_about_page_link(self):
|
||||
""" create mock course and return the about page link """
|
||||
course_key = SlashSeparatedCourseKey('mitX', '101', 'test')
|
||||
return utils.get_lms_link_for_about_page(course_key)
|
||||
|
||||
def lms_link_test(self):
|
||||
""" Tests get_lms_link_for_item. """
|
||||
course_key = SlashSeparatedCourseKey('mitX', '101', 'test')
|
||||
|
||||
@@ -3,7 +3,6 @@ Common utility functions useful throughout the contentstore
|
||||
"""
|
||||
|
||||
import logging
|
||||
import re
|
||||
from datetime import datetime
|
||||
from pytz import UTC
|
||||
|
||||
@@ -104,42 +103,6 @@ def get_lms_link_for_item(location, preview=False):
|
||||
)
|
||||
|
||||
|
||||
def get_lms_link_for_about_page(course_key):
|
||||
"""
|
||||
Returns the url to the course about page from the location tuple.
|
||||
"""
|
||||
|
||||
assert isinstance(course_key, CourseKey)
|
||||
|
||||
if settings.FEATURES.get('ENABLE_MKTG_SITE', False):
|
||||
if not hasattr(settings, 'MKTG_URLS'):
|
||||
log.exception("ENABLE_MKTG_SITE is True, but MKTG_URLS is not defined.")
|
||||
return None
|
||||
|
||||
marketing_urls = settings.MKTG_URLS
|
||||
|
||||
# Root will be "https://www.edx.org". The complete URL will still not be exactly correct,
|
||||
# but redirects exist from www.edx.org to get to the Drupal course about page URL.
|
||||
about_base = marketing_urls.get('ROOT', None)
|
||||
|
||||
if about_base is None:
|
||||
log.exception('There is no ROOT defined in MKTG_URLS')
|
||||
return None
|
||||
|
||||
# Strip off https:// (or http://) to be consistent with the formatting of LMS_BASE.
|
||||
about_base = re.sub(r"^https?://", "", about_base)
|
||||
|
||||
elif settings.LMS_BASE is not None:
|
||||
about_base = settings.LMS_BASE
|
||||
else:
|
||||
return None
|
||||
|
||||
return u"//{about_base_url}/courses/{course_key}/about".format(
|
||||
about_base_url=about_base,
|
||||
course_key=course_key.to_deprecated_string()
|
||||
)
|
||||
|
||||
|
||||
# pylint: disable=invalid-name
|
||||
def get_lms_link_for_certificate_web_view(user_id, course_key, mode):
|
||||
"""
|
||||
|
||||
@@ -28,7 +28,6 @@ from .component import (
|
||||
from .item import create_xblock_info
|
||||
from .library import LIBRARIES_ENABLED
|
||||
from ccx_keys.locator import CCXLocator
|
||||
from contentstore import utils
|
||||
from contentstore.course_group_config import (
|
||||
COHORT_SCHEME,
|
||||
GroupConfiguration,
|
||||
@@ -58,7 +57,6 @@ from course_action_state.managers import CourseActionStateItemNotFoundError
|
||||
from course_action_state.models import CourseRerunState, CourseRerunUIStateManager
|
||||
from course_creators.views import get_course_creator_status, add_user_with_status_unrequested
|
||||
from edxmako.shortcuts import render_to_response
|
||||
from microsite_configuration import microsite
|
||||
from models.settings.course_grading import CourseGradingModel
|
||||
from models.settings.course_metadata import CourseMetadata
|
||||
from models.settings.encoder import CourseSettingsEncoder
|
||||
@@ -69,6 +67,7 @@ from openedx.core.djangoapps.models.course_details import CourseDetails
|
||||
from openedx.core.djangoapps.programs.models import ProgramsApiConfig
|
||||
from openedx.core.djangoapps.programs.utils import get_programs
|
||||
from openedx.core.djangoapps.self_paced.models import SelfPacedConfiguration
|
||||
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
|
||||
from openedx.core.lib.course_tabs import CourseTabPluginManager
|
||||
from openedx.core.lib.courses import course_image_url
|
||||
from openedx.core.djangolib.js_utils import dump_js_escaped_json
|
||||
@@ -77,6 +76,7 @@ from student.auth import has_course_author_access, has_studio_write_access, has_
|
||||
from student.roles import (
|
||||
CourseInstructorRole, CourseStaffRole, CourseCreatorRole, GlobalStaff, UserBasedRole
|
||||
)
|
||||
from util.course import get_lms_link_for_about_page
|
||||
from util.date_utils import get_default_time_display
|
||||
from util.json_request import JsonResponse, JsonResponseBadRequest, expect_json
|
||||
from util.milestones_helpers import (
|
||||
@@ -975,14 +975,14 @@ def settings_handler(request, course_key_string):
|
||||
if 'text/html' in request.META.get('HTTP_ACCEPT', '') and request.method == 'GET':
|
||||
upload_asset_url = reverse_course_url('assets_handler', course_key)
|
||||
|
||||
# see if the ORG of this course can be attributed to a 'Microsite'. In that case, the
|
||||
# see if the ORG of this course can be attributed to a defined configuration . In that case, the
|
||||
# course about page should be editable in Studio
|
||||
marketing_site_enabled = microsite.get_value_for_org(
|
||||
marketing_site_enabled = configuration_helpers.get_value_for_org(
|
||||
course_module.location.org,
|
||||
'ENABLE_MKTG_SITE',
|
||||
settings.FEATURES.get('ENABLE_MKTG_SITE', False)
|
||||
)
|
||||
enable_extended_course_details = microsite.get_value_for_org(
|
||||
enable_extended_course_details = configuration_helpers.get_value_for_org(
|
||||
course_module.location.org,
|
||||
'ENABLE_EXTENDED_COURSE_DETAILS',
|
||||
settings.FEATURES.get('ENABLE_EXTENDED_COURSE_DETAILS', False)
|
||||
@@ -996,7 +996,7 @@ def settings_handler(request, course_key_string):
|
||||
settings_context = {
|
||||
'context_course': course_module,
|
||||
'course_locator': course_key,
|
||||
'lms_link_for_about_page': utils.get_lms_link_for_about_page(course_key),
|
||||
'lms_link_for_about_page': get_lms_link_for_about_page(course_key),
|
||||
'course_image_url': course_image_url(course_module, 'course_image'),
|
||||
'banner_image_url': course_image_url(course_module, 'banner_image'),
|
||||
'video_thumbnail_image_url': course_image_url(course_module, 'video_thumbnail_image'),
|
||||
|
||||
@@ -5,8 +5,6 @@ in a 404 error.
|
||||
"""
|
||||
# pylint: disable=unused-argument
|
||||
from edxmako.shortcuts import render_to_response
|
||||
from mako.exceptions import TopLevelLookupException
|
||||
from django.http import HttpResponseNotFound
|
||||
|
||||
|
||||
def dev_mode(request):
|
||||
|
||||
@@ -131,13 +131,6 @@ def _create_entrance_exam(request, course_key, entrance_exam_minimum_score_pct=N
|
||||
return HttpResponse(status=400)
|
||||
|
||||
# Create the entrance exam item (currently it's just a chapter)
|
||||
payload = {
|
||||
'category': "chapter",
|
||||
'display_name': _("Entrance Exam"),
|
||||
'parent_locator': unicode(course.location),
|
||||
'is_entrance_exam': True,
|
||||
'in_entrance_exam': True,
|
||||
}
|
||||
parent_locator = unicode(course.location)
|
||||
created_block = create_xblock(
|
||||
parent_locator=parent_locator,
|
||||
|
||||
@@ -9,10 +9,9 @@ import urllib
|
||||
|
||||
from django.conf import settings
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import redirect
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from edxmako.shortcuts import render_to_string, render_to_response
|
||||
from edxmako.shortcuts import render_to_string
|
||||
from opaque_keys.edx.keys import UsageKey
|
||||
from xblock.core import XBlock
|
||||
import dogstats_wrapper as dog_stats_api
|
||||
|
||||
@@ -27,7 +27,6 @@ from xblock.runtime import KvsFieldData
|
||||
from xblock.django.request import webob_to_django_response, django_to_webob_request
|
||||
from xblock.exceptions import NoSuchHandlerError
|
||||
from xblock.fragment import Fragment
|
||||
from student.auth import has_studio_read_access, has_studio_write_access
|
||||
from xblock_django.user_service import DjangoXBlockUserService
|
||||
|
||||
from lms.djangoapps.lms_xblock.field_data import LmsFieldData
|
||||
|
||||
@@ -16,9 +16,8 @@ from openedx.core.lib.token_utils import JwtBuilder
|
||||
class ProgramAuthoringView(View):
|
||||
"""View rendering a template which hosts the Programs authoring app.
|
||||
|
||||
The Programs authoring app is a Backbone SPA maintained in a separate repository.
|
||||
The app handles its own routing and provides a UI which can be used to create and
|
||||
publish new Programs (e.g, XSeries).
|
||||
The Programs authoring app is a Backbone SPA. The app handles its own routing
|
||||
and provides a UI which can be used to create and publish new Programs.
|
||||
"""
|
||||
|
||||
@method_decorator(login_required)
|
||||
|
||||
@@ -12,7 +12,7 @@ from edxmako.shortcuts import render_to_response
|
||||
|
||||
from external_auth.views import (ssl_login_shortcut, ssl_get_cert_from_request,
|
||||
redirect_with_get)
|
||||
from microsite_configuration import microsite
|
||||
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
|
||||
|
||||
__all__ = ['signup', 'login_page', 'howitworks']
|
||||
|
||||
@@ -61,7 +61,7 @@ def login_page(request):
|
||||
{
|
||||
'csrf': csrf_token,
|
||||
'forgot_password_link': "//{base}/login#forgot-password-modal".format(base=settings.LMS_BASE),
|
||||
'platform_name': microsite.get_value('platform_name', settings.PLATFORM_NAME),
|
||||
'platform_name': configuration_helpers.get_value('platform_name', settings.PLATFORM_NAME),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ class BasicAssetsTestCase(AssetsTestCase):
|
||||
url = asset_url.replace('"', '')
|
||||
base_url = url.replace(filename, '')
|
||||
|
||||
self.assertTrue("/{}".format(filename) in url)
|
||||
self.assertIn("/{}".format(filename), url)
|
||||
resp = self.client.get(url)
|
||||
self.assertEquals(resp.status_code, 200)
|
||||
|
||||
@@ -142,7 +142,7 @@ class BasicAssetsTestCase(AssetsTestCase):
|
||||
# browser append relative_path with base_url
|
||||
absolute_path = base_url + relative_path
|
||||
|
||||
self.assertTrue("/{}".format(relative_path) in absolute_path)
|
||||
self.assertIn("/{}".format(relative_path), absolute_path)
|
||||
resp = self.client.get(absolute_path)
|
||||
self.assertEquals(resp.status_code, 200)
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ class HelperMethods(object):
|
||||
'title': 'Title ' + str(i),
|
||||
'signature_image_path': '/c4x/test/CSS101/asset/Signature{}.png'.format(i),
|
||||
'id': i
|
||||
} for i in xrange(0, signatory_count)
|
||||
} for i in xrange(signatory_count)
|
||||
|
||||
]
|
||||
|
||||
@@ -99,7 +99,7 @@ class HelperMethods(object):
|
||||
'signatories': signatories,
|
||||
'version': CERTIFICATE_SCHEMA_VERSION,
|
||||
'is_active': is_active
|
||||
} for i in xrange(0, count)
|
||||
} for i in xrange(count)
|
||||
]
|
||||
self.course.certificates = {'certificates': certificates}
|
||||
self.save_course()
|
||||
@@ -181,7 +181,7 @@ class CertificatesBaseTestCase(object):
|
||||
with self.assertRaises(Exception) as context:
|
||||
CertificateManager.validate(json_data_1)
|
||||
|
||||
self.assertTrue("Unsupported certificate schema version: 100. Expected version: 1." in context.exception)
|
||||
self.assertIn("Unsupported certificate schema version: 100. Expected version: 1.", context.exception)
|
||||
|
||||
#Test certificate name is missing
|
||||
json_data_2 = {
|
||||
@@ -192,13 +192,14 @@ class CertificatesBaseTestCase(object):
|
||||
with self.assertRaises(Exception) as context:
|
||||
CertificateManager.validate(json_data_2)
|
||||
|
||||
self.assertTrue('must have name of the certificate' in context.exception)
|
||||
self.assertIn('must have name of the certificate', context.exception)
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
|
||||
class CertificatesListHandlerTestCase(
|
||||
EventTestMixin, CourseTestCase, CertificatesBaseTestCase, HelperMethods, UrlResetMixin):
|
||||
EventTestMixin, CourseTestCase, CertificatesBaseTestCase, HelperMethods, UrlResetMixin
|
||||
):
|
||||
"""
|
||||
Test cases for certificates_list_handler.
|
||||
"""
|
||||
@@ -423,7 +424,8 @@ class CertificatesListHandlerTestCase(
|
||||
@ddt.ddt
|
||||
@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
|
||||
class CertificatesDetailHandlerTestCase(
|
||||
EventTestMixin, CourseTestCase, CertificatesBaseTestCase, HelperMethods, UrlResetMixin):
|
||||
EventTestMixin, CourseTestCase, CertificatesBaseTestCase, HelperMethods, UrlResetMixin
|
||||
):
|
||||
"""
|
||||
Test cases for CertificatesDetailHandlerTestCase.
|
||||
"""
|
||||
|
||||
@@ -10,7 +10,6 @@ import pytz
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.test.utils import override_settings
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from contentstore.courseware_index import CoursewareSearchIndexer, SearchIndexingError
|
||||
@@ -150,14 +149,14 @@ class TestCourseIndex(CourseTestCase):
|
||||
|
||||
# Now verify the first child
|
||||
children = json_response['child_info']['children']
|
||||
self.assertTrue(len(children) > 0)
|
||||
self.assertGreater(len(children), 0)
|
||||
first_child_response = children[0]
|
||||
self.assertEqual(first_child_response['category'], 'chapter')
|
||||
self.assertEqual(first_child_response['id'], unicode(chapter.location))
|
||||
self.assertEqual(first_child_response['display_name'], 'Week 1')
|
||||
self.assertTrue(json_response['published'])
|
||||
self.assertEqual(first_child_response['visibility_state'], VisibilityState.unscheduled)
|
||||
self.assertTrue(len(first_child_response['child_info']['children']) > 0)
|
||||
self.assertGreater(len(first_child_response['child_info']['children']), 0)
|
||||
|
||||
# Finally, validate the entire response for consistency
|
||||
self.assert_correct_json_response(json_response)
|
||||
@@ -352,14 +351,14 @@ class TestCourseOutline(CourseTestCase):
|
||||
|
||||
# Now verify the first child
|
||||
children = json_response['child_info']['children']
|
||||
self.assertTrue(len(children) > 0)
|
||||
self.assertGreater(len(children), 0)
|
||||
first_child_response = children[0]
|
||||
self.assertEqual(first_child_response['category'], 'chapter')
|
||||
self.assertEqual(first_child_response['id'], unicode(self.chapter.location))
|
||||
self.assertEqual(first_child_response['display_name'], 'Week 1')
|
||||
self.assertTrue(json_response['published'])
|
||||
self.assertEqual(first_child_response['visibility_state'], VisibilityState.unscheduled)
|
||||
self.assertTrue(len(first_child_response['child_info']['children']) > 0)
|
||||
self.assertGreater(len(first_child_response['child_info']['children']), 0)
|
||||
|
||||
# Finally, validate the entire response for consistency
|
||||
self.assert_correct_json_response(json_response)
|
||||
|
||||
@@ -71,7 +71,7 @@ class CourseUpdateTest(CourseTestCase):
|
||||
course_update_url = self.create_update_url()
|
||||
resp = self.client.get_json(course_update_url)
|
||||
payload = json.loads(resp.content)
|
||||
self.assertTrue(len(payload) == 2)
|
||||
self.assertEqual(len(payload), 2)
|
||||
|
||||
# try json w/o required fields
|
||||
self.assertContains(
|
||||
@@ -123,7 +123,7 @@ class CourseUpdateTest(CourseTestCase):
|
||||
url = self.create_update_url(provided_id=this_id)
|
||||
resp = self.client.delete(url)
|
||||
payload = json.loads(resp.content)
|
||||
self.assertTrue(len(payload) == before_delete - 1)
|
||||
self.assertEqual(len(payload), before_delete - 1)
|
||||
|
||||
def test_course_updates_compatibility(self):
|
||||
'''
|
||||
@@ -149,7 +149,7 @@ class CourseUpdateTest(CourseTestCase):
|
||||
resp = self.client.get_json(course_update_url)
|
||||
payload = json.loads(resp.content)
|
||||
self.assertEqual(payload, [{u'date': update_date, u'content': update_content, u'id': 1}])
|
||||
self.assertTrue(len(payload) == 1)
|
||||
self.assertEqual(len(payload), 1)
|
||||
|
||||
# test getting single update item
|
||||
|
||||
@@ -234,7 +234,7 @@ class CourseUpdateTest(CourseTestCase):
|
||||
# now confirm that the bad news and the iframe make up single update
|
||||
resp = self.client.get_json(course_update_url)
|
||||
payload = json.loads(resp.content)
|
||||
self.assertTrue(len(payload) == 1)
|
||||
self.assertEqual(len(payload), 1)
|
||||
|
||||
def post_course_update(self, send_push_notification=False):
|
||||
"""
|
||||
|
||||
@@ -15,15 +15,17 @@ from uuid import uuid4
|
||||
|
||||
from django.test.utils import override_settings
|
||||
from django.conf import settings
|
||||
|
||||
from contentstore.tests.test_libraries import LibraryTestCase
|
||||
from xmodule.contentstore.django import contentstore
|
||||
from xmodule.modulestore.django import modulestore
|
||||
from xmodule.modulestore.xml_exporter import export_library_to_xml
|
||||
from xmodule.modulestore.xml_importer import import_library_from_xml
|
||||
from xmodule.modulestore.xml_exporter import export_library_to_xml, export_course_to_xml
|
||||
from xmodule.modulestore.xml_importer import import_library_from_xml, import_course_from_xml
|
||||
from xmodule.modulestore import LIBRARY_ROOT, ModuleStoreEnum
|
||||
from contentstore.utils import reverse_course_url
|
||||
from contentstore.tests.utils import CourseTestCase
|
||||
|
||||
from xmodule.modulestore.tests.factories import ItemFactory, LibraryFactory
|
||||
from xmodule.modulestore.tests.factories import ItemFactory, LibraryFactory, CourseFactory
|
||||
from xmodule.modulestore.tests.utils import (
|
||||
MongoContentstoreBuilder, SPLIT_MODULESTORE_SETUP, TEST_DATA_DIR
|
||||
)
|
||||
@@ -335,7 +337,7 @@ class ImportTestCase(CourseTestCase):
|
||||
args = {"name": tarpath, "course-data": [tar]}
|
||||
resp = self.client.post(self.url, args)
|
||||
self.assertEquals(resp.status_code, 400)
|
||||
self.assertTrue("SuspiciousFileOperation" in resp.content)
|
||||
self.assertIn("SuspiciousFileOperation", resp.content)
|
||||
|
||||
try_tar(self._fifo_tar())
|
||||
try_tar(self._symlink_tar())
|
||||
@@ -697,3 +699,111 @@ class TestLibraryImportExport(CourseTestCase):
|
||||
|
||||
# Compare the two content libraries for equality.
|
||||
self.assertCoursesEqual(source_library1_key, source_library2_key)
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
@override_settings(CONTENTSTORE=TEST_DATA_CONTENTSTORE)
|
||||
class TestCourseExportImport(LibraryTestCase):
|
||||
"""
|
||||
Tests for importing after exporting the course containing content libraries from XML.
|
||||
"""
|
||||
def setUp(self):
|
||||
super(TestCourseExportImport, self).setUp()
|
||||
self.export_dir = tempfile.mkdtemp()
|
||||
|
||||
# Create a problem in library
|
||||
ItemFactory.create(
|
||||
category="problem",
|
||||
parent_location=self.library.location,
|
||||
user_id=self.user.id, # pylint: disable=no-member
|
||||
publish_item=False,
|
||||
display_name='Test Problem',
|
||||
data="<problem><multiplechoiceresponse></multiplechoiceresponse></problem>",
|
||||
)
|
||||
|
||||
# Create a source course.
|
||||
self.source_course = CourseFactory.create(default_store=ModuleStoreEnum.Type.split)
|
||||
self.addCleanup(shutil.rmtree, self.export_dir, ignore_errors=True)
|
||||
|
||||
def _setup_source_course_with_library_content(self, publish=False):
|
||||
"""
|
||||
Sets up course with library content.
|
||||
"""
|
||||
chapter = ItemFactory.create(
|
||||
parent_location=self.source_course.location,
|
||||
category='chapter',
|
||||
display_name='Test Section'
|
||||
)
|
||||
sequential = ItemFactory.create(
|
||||
parent_location=chapter.location,
|
||||
category='sequential',
|
||||
display_name='Test Sequential'
|
||||
)
|
||||
vertical = ItemFactory.create(
|
||||
category='vertical',
|
||||
parent_location=sequential.location,
|
||||
display_name='Test Unit'
|
||||
)
|
||||
lc_block = self._add_library_content_block(vertical, self.lib_key, publish_item=publish)
|
||||
self._refresh_children(lc_block)
|
||||
|
||||
def get_lib_content_block_children(self, block_location):
|
||||
"""
|
||||
Search for library content block to return its immediate children
|
||||
"""
|
||||
if block_location.block_type == 'library_content':
|
||||
return self.store.get_item(block_location).children
|
||||
|
||||
return self.get_lib_content_block_children(self.store.get_item(block_location).children[0])
|
||||
|
||||
def assert_problem_display_names(self, source_course_location, dest_course_location):
|
||||
"""
|
||||
Asserts that problems' display names in both source and destination courses are same.
|
||||
"""
|
||||
source_course_lib_children = self.get_lib_content_block_children(source_course_location)
|
||||
dest_course_lib_children = self.get_lib_content_block_children(dest_course_location)
|
||||
|
||||
self.assertEquals(len(source_course_lib_children), len(dest_course_lib_children))
|
||||
|
||||
for source_child_location, dest_child_location in zip(source_course_lib_children, dest_course_lib_children):
|
||||
source_child = self.store.get_item(source_child_location)
|
||||
dest_child = self.store.get_item(dest_child_location)
|
||||
self.assertEquals(source_child.display_name, dest_child.display_name)
|
||||
|
||||
@ddt.data(True, False)
|
||||
def test_library_content_on_course_export_import(self, publish_item):
|
||||
"""
|
||||
Verify that library contents in destination and source courses are same after importing
|
||||
the source course into destination course.
|
||||
"""
|
||||
self._setup_source_course_with_library_content(publish=publish_item)
|
||||
|
||||
# Create a course to import source course.
|
||||
dest_course = CourseFactory.create(default_store=ModuleStoreEnum.Type.split)
|
||||
|
||||
# Export the source course.
|
||||
export_course_to_xml(
|
||||
self.store,
|
||||
contentstore(),
|
||||
self.source_course.location.course_key,
|
||||
self.export_dir,
|
||||
'exported_source_course',
|
||||
)
|
||||
|
||||
# Now, import it back to dest_course.
|
||||
import_course_from_xml(
|
||||
self.store,
|
||||
self.user.id, # pylint: disable=no-member
|
||||
self.export_dir,
|
||||
['exported_source_course'],
|
||||
static_content_store=contentstore(),
|
||||
target_id=dest_course.location.course_key,
|
||||
load_error_modules=False,
|
||||
raise_on_failure=True,
|
||||
create_if_not_present=True,
|
||||
)
|
||||
|
||||
self.assert_problem_display_names(
|
||||
self.source_course.location,
|
||||
dest_course.location
|
||||
)
|
||||
|
||||
@@ -607,7 +607,7 @@ class TestDuplicateItem(ItemTest, DuplicateHelper):
|
||||
parent = self.get_item_from_modulestore(parent_usage_key)
|
||||
children = parent.children
|
||||
if source_position is None:
|
||||
self.assertFalse(source_usage_key in children, 'source item not expected in children array')
|
||||
self.assertNotIn(source_usage_key, children, 'source item not expected in children array')
|
||||
self.assertEqual(
|
||||
children[len(children) - 1],
|
||||
usage_key,
|
||||
@@ -2102,7 +2102,7 @@ class TestXBlockPublishingInfo(ItemTest):
|
||||
Returns the child xblock info at the specified index.
|
||||
"""
|
||||
children = xblock_info['child_info']['children']
|
||||
self.assertTrue(len(children) > index)
|
||||
self.assertGreater(len(children), index)
|
||||
return children[index]
|
||||
|
||||
def _get_xblock_info(self, location):
|
||||
|
||||
@@ -80,7 +80,7 @@ class TabsPageTests(CourseTestCase):
|
||||
num_orig_tabs = len(orig_tab_ids)
|
||||
|
||||
# make sure we have enough tabs to play around with
|
||||
self.assertTrue(num_orig_tabs >= 5)
|
||||
self.assertGreaterEqual(num_orig_tabs, 5)
|
||||
|
||||
# reorder the last two tabs
|
||||
tab_ids[num_orig_tabs - 1], tab_ids[num_orig_tabs - 2] = tab_ids[num_orig_tabs - 2], tab_ids[num_orig_tabs - 1]
|
||||
@@ -88,7 +88,7 @@ class TabsPageTests(CourseTestCase):
|
||||
# remove the middle tab
|
||||
# (the code needs to handle the case where tabs requested for re-ordering is a subset of the tabs in the course)
|
||||
removed_tab = tab_ids.pop(num_orig_tabs / 2)
|
||||
self.assertTrue(len(tab_ids) == num_orig_tabs - 1)
|
||||
self.assertEqual(len(tab_ids), num_orig_tabs - 1)
|
||||
|
||||
# post the request
|
||||
resp = self.client.ajax_post(
|
||||
@@ -205,7 +205,7 @@ class PrimitiveTabEdit(ModuleStoreTestCase):
|
||||
with self.assertRaises(IndexError):
|
||||
tabs.primitive_delete(course, 6)
|
||||
tabs.primitive_delete(course, 2)
|
||||
self.assertFalse({u'type': u'textbooks'} in course.tabs)
|
||||
self.assertNotIn({u'type': u'textbooks'}, course.tabs)
|
||||
# Check that discussion has shifted up
|
||||
self.assertEquals(course.tabs[2], {'type': 'discussion', 'name': 'Discussion'})
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ Tests course_creators.views.py.
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.test import TestCase, RequestFactory
|
||||
from django.test import TestCase
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from course_creators.views import add_user_with_status_unrequested, add_user_with_status_granted
|
||||
|
||||
@@ -100,6 +100,9 @@ class CourseMetadata(object):
|
||||
if not XBlockStudioConfigurationFlag.is_enabled():
|
||||
filtered_list.append('allow_unsupported_xblocks')
|
||||
|
||||
if not settings.FEATURES.get('ENABLE_SUBSECTION_GRADES_SAVED'):
|
||||
filtered_list.append('enable_subsection_grades_saved')
|
||||
|
||||
return filtered_list
|
||||
|
||||
@classmethod
|
||||
|
||||
@@ -138,6 +138,7 @@ EMAIL_PORT = ENV_TOKENS.get('EMAIL_PORT', EMAIL_PORT)
|
||||
EMAIL_USE_TLS = ENV_TOKENS.get('EMAIL_USE_TLS', EMAIL_USE_TLS)
|
||||
|
||||
LMS_BASE = ENV_TOKENS.get('LMS_BASE')
|
||||
LMS_ROOT_URL = ENV_TOKENS.get('LMS_ROOT_URL')
|
||||
# Note that FEATURES['PREVIEW_LMS_BASE'] gets read in from the environment file.
|
||||
|
||||
SITE_NAME = ENV_TOKENS['SITE_NAME']
|
||||
@@ -209,9 +210,6 @@ COURSES_WITH_UNSAFE_CODE = ENV_TOKENS.get("COURSES_WITH_UNSAFE_CODE", [])
|
||||
|
||||
ASSET_IGNORE_REGEX = ENV_TOKENS.get('ASSET_IGNORE_REGEX', ASSET_IGNORE_REGEX)
|
||||
|
||||
# Theme overrides
|
||||
THEME_NAME = ENV_TOKENS.get('THEME_NAME', None)
|
||||
|
||||
# following setting is for backward compatibility
|
||||
if ENV_TOKENS.get('COMPREHENSIVE_THEME_DIR', None):
|
||||
COMPREHENSIVE_THEME_DIR = ENV_TOKENS.get('COMPREHENSIVE_THEME_DIR')
|
||||
|
||||
@@ -88,6 +88,7 @@
|
||||
"STORAGE_TYPE": "localfs"
|
||||
},
|
||||
"LMS_BASE": "localhost:8003",
|
||||
"LMS_ROOT_URL": "http://localhost:8003",
|
||||
"LOCAL_LOGLEVEL": "INFO",
|
||||
"LOGGING_ENV": "sandbox",
|
||||
"LOG_DIR": "** OVERRIDDEN **",
|
||||
@@ -101,7 +102,6 @@
|
||||
"STATIC_URL_BASE": "/static/",
|
||||
"SYSLOG_SERVER": "",
|
||||
"TECH_SUPPORT_EMAIL": "technical@example.com",
|
||||
"THEME_NAME": "",
|
||||
"TIME_ZONE": "America/New_York",
|
||||
"WIKI_ENABLED": true,
|
||||
"OAUTH_OIDC_ISSUER": "https://www.example.com/oauth2"
|
||||
|
||||
@@ -93,6 +93,9 @@ FEATURES['LICENSING'] = True
|
||||
FEATURES['ENABLE_MOBILE_REST_API'] = True # Enable video bumper in Studio
|
||||
FEATURES['ENABLE_VIDEO_BUMPER'] = True # Enable video bumper in Studio settings
|
||||
|
||||
# Enable persistent subsection grades, so that feature can be tested.
|
||||
FEATURES['ENABLE_SUBSECTION_GRADES_SAVED'] = True
|
||||
|
||||
# Enable partner support link in Studio footer
|
||||
PARTNER_SUPPORT_EMAIL = 'partner-support@example.com'
|
||||
|
||||
@@ -120,6 +123,8 @@ MOCK_SEARCH_BACKING_FILE = (
|
||||
# this secret key should be the same as lms/envs/bok_choy.py's
|
||||
SECRET_KEY = "very_secret_bok_choy_key"
|
||||
|
||||
LMS_ROOT_URL = "http://localhost:8000"
|
||||
|
||||
#####################################################################
|
||||
# Lastly, see if the developer has any local overrides.
|
||||
try:
|
||||
|
||||
@@ -208,6 +208,12 @@ FEATURES = {
|
||||
|
||||
# Show Language selector
|
||||
'SHOW_LANGUAGE_SELECTOR': False,
|
||||
|
||||
# Temporary feature flag for disabling saving of subsection grades.
|
||||
# There is also an advanced setting in the course module. The
|
||||
# feature flag and the advanced setting must both be true for
|
||||
# a course to use saved grades.
|
||||
'ENABLE_SUBSECTION_GRADES_SAVED': False,
|
||||
}
|
||||
|
||||
ENABLE_JASMINE = False
|
||||
@@ -296,6 +302,7 @@ AUTHENTICATION_BACKENDS = (
|
||||
)
|
||||
|
||||
LMS_BASE = None
|
||||
LMS_ROOT_URL = "http://localhost:8000"
|
||||
|
||||
# These are standard regexes for pulling out info like course_ids, usage_ids, etc.
|
||||
# They are used so that URLs with deprecated-format strings still work.
|
||||
@@ -914,6 +921,7 @@ INSTALLED_APPS = (
|
||||
# other apps that are. Django 1.8 wants to have imported models supported
|
||||
# by installed apps.
|
||||
'lms.djangoapps.verify_student',
|
||||
'lms.djangoapps.grades',
|
||||
|
||||
# Microsite configuration application
|
||||
'microsite_configuration',
|
||||
@@ -929,6 +937,9 @@ INSTALLED_APPS = (
|
||||
|
||||
# Enables default site and redirects
|
||||
'django_sites_extensions',
|
||||
|
||||
# additional release utilities to ease automation
|
||||
'release_util'
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@ DATABASES = {
|
||||
}
|
||||
|
||||
LMS_BASE = "localhost:8000"
|
||||
LMS_ROOT_URL = "http://{}".format(LMS_BASE)
|
||||
FEATURES['PREVIEW_LMS_BASE'] = "localhost:8000"
|
||||
|
||||
REPOS = {
|
||||
|
||||
@@ -31,6 +31,7 @@ EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
|
||||
################################# LMS INTEGRATION #############################
|
||||
|
||||
LMS_BASE = "localhost:8000"
|
||||
LMS_ROOT_URL = "http://{}".format(LMS_BASE)
|
||||
FEATURES['PREVIEW_LMS_BASE'] = "preview." + LMS_BASE
|
||||
|
||||
########################### PIPELINE #################################
|
||||
|
||||
@@ -141,6 +141,7 @@ if os.environ.get('DISABLE_MIGRATIONS'):
|
||||
MIGRATION_MODULES = NoOpMigrationModules()
|
||||
|
||||
LMS_BASE = "localhost:8000"
|
||||
LMS_ROOT_URL = "http://{}".format(LMS_BASE)
|
||||
FEATURES['PREVIEW_LMS_BASE'] = "preview.localhost"
|
||||
|
||||
|
||||
@@ -223,54 +224,54 @@ FEATURES['EMBARGO'] = True
|
||||
|
||||
# set up some testing for microsites
|
||||
FEATURES['USE_MICROSITES'] = True
|
||||
MICROSITE_ROOT_DIR = COMMON_ROOT / 'test' / 'test_microsites'
|
||||
MICROSITE_ROOT_DIR = COMMON_ROOT / 'test' / 'test_sites'
|
||||
MICROSITE_CONFIGURATION = {
|
||||
"test_microsite": {
|
||||
"domain_prefix": "testmicrosite",
|
||||
"university": "test_microsite",
|
||||
"platform_name": "Test Microsite",
|
||||
"logo_image_url": "test_microsite/images/header-logo.png",
|
||||
"email_from_address": "test_microsite@edx.org",
|
||||
"payment_support_email": "test_microsite@edx.org",
|
||||
"test_site": {
|
||||
"domain_prefix": "test-site",
|
||||
"university": "test_site",
|
||||
"platform_name": "Test Site",
|
||||
"logo_image_url": "test_site/images/header-logo.png",
|
||||
"email_from_address": "test_site@edx.org",
|
||||
"payment_support_email": "test_site@edx.org",
|
||||
"ENABLE_MKTG_SITE": False,
|
||||
"SITE_NAME": "test_microsite.localhost",
|
||||
"course_org_filter": "TestMicrositeX",
|
||||
"SITE_NAME": "test_site.localhost",
|
||||
"course_org_filter": "TestSiteX",
|
||||
"course_about_show_social_links": False,
|
||||
"css_overrides_file": "test_microsite/css/test_microsite.css",
|
||||
"css_overrides_file": "test_site/css/test_site.css",
|
||||
"show_partners": False,
|
||||
"show_homepage_promo_video": False,
|
||||
"course_index_overlay_text": "This is a Test Microsite Overlay Text.",
|
||||
"course_index_overlay_logo_file": "test_microsite/images/header-logo.png",
|
||||
"homepage_overlay_html": "<h1>This is a Test Microsite Overlay HTML</h1>",
|
||||
"course_index_overlay_text": "This is a Test Site Overlay Text.",
|
||||
"course_index_overlay_logo_file": "test_site/images/header-logo.png",
|
||||
"homepage_overlay_html": "<h1>This is a Test Site Overlay HTML</h1>",
|
||||
"ALWAYS_REDIRECT_HOMEPAGE_TO_DASHBOARD_FOR_AUTHENTICATED_USER": False,
|
||||
"COURSE_CATALOG_VISIBILITY_PERMISSION": "see_in_catalog",
|
||||
"COURSE_ABOUT_VISIBILITY_PERMISSION": "see_about_page",
|
||||
"ENABLE_SHOPPING_CART": True,
|
||||
"ENABLE_PAID_COURSE_REGISTRATION": True,
|
||||
"SESSION_COOKIE_DOMAIN": "test_microsite.localhost",
|
||||
"SESSION_COOKIE_DOMAIN": "test_site.localhost",
|
||||
"urls": {
|
||||
'ABOUT': 'testmicrosite/about',
|
||||
'PRIVACY': 'testmicrosite/privacy',
|
||||
'TOS_AND_HONOR': 'testmicrosite/tos-and-honor',
|
||||
'ABOUT': 'test-site/about',
|
||||
'PRIVACY': 'test-site/privacy',
|
||||
'TOS_AND_HONOR': 'test-site/tos-and-honor',
|
||||
},
|
||||
},
|
||||
"microsite_with_logistration": {
|
||||
"site_with_logistration": {
|
||||
"domain_prefix": "logistration",
|
||||
"university": "logistration",
|
||||
"platform_name": "Test logistration",
|
||||
"logo_image_url": "test_microsite/images/header-logo.png",
|
||||
"email_from_address": "test_microsite@edx.org",
|
||||
"payment_support_email": "test_microsite@edx.org",
|
||||
"logo_image_url": "test_site/images/header-logo.png",
|
||||
"email_from_address": "test_site@edx.org",
|
||||
"payment_support_email": "test_site@edx.org",
|
||||
"ENABLE_MKTG_SITE": False,
|
||||
"ENABLE_COMBINED_LOGIN_REGISTRATION": True,
|
||||
"SITE_NAME": "test_microsite.localhost",
|
||||
"SITE_NAME": "test_site.localhost",
|
||||
"course_org_filter": "LogistrationX",
|
||||
"course_about_show_social_links": False,
|
||||
"css_overrides_file": "test_microsite/css/test_microsite.css",
|
||||
"css_overrides_file": "test_site/css/test_site.css",
|
||||
"show_partners": False,
|
||||
"show_homepage_promo_video": False,
|
||||
"course_index_overlay_text": "Logistration.",
|
||||
"course_index_overlay_logo_file": "test_microsite/images/header-logo.png",
|
||||
"course_index_overlay_logo_file": "test_site/images/header-logo.png",
|
||||
"homepage_overlay_html": "<h1>This is a Logistration HTML</h1>",
|
||||
"ALWAYS_REDIRECT_HOMEPAGE_TO_DASHBOARD_FOR_AUTHENTICATED_USER": False,
|
||||
"COURSE_CATALOG_VISIBILITY_PERMISSION": "see_in_catalog",
|
||||
@@ -284,7 +285,7 @@ MICROSITE_CONFIGURATION = {
|
||||
"domain_prefix": "www",
|
||||
}
|
||||
}
|
||||
MICROSITE_TEST_HOSTNAME = 'testmicrosite.testserver'
|
||||
MICROSITE_TEST_HOSTNAME = 'test-site.testserver'
|
||||
MICROSITE_LOGISTRATION_HOSTNAME = 'logistration.testserver'
|
||||
|
||||
TEST_THEME = COMMON_ROOT / "test" / "test-theme"
|
||||
@@ -321,6 +322,9 @@ SEARCH_ENGINE = "search.tests.mock_search_engine.MockSearchEngine"
|
||||
# teams feature
|
||||
FEATURES['ENABLE_TEAMS'] = True
|
||||
|
||||
# Enable persistent subsection grades, so that feature can be tested.
|
||||
FEATURES['ENABLE_SUBSECTION_GRADES_SAVED'] = True
|
||||
|
||||
# Dummy secret key for dev/test
|
||||
SECRET_KEY = '85920908f28904ed733fe576320db18cabd7b6cd'
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ Module with code executed during Studio startup
|
||||
from django.conf import settings
|
||||
|
||||
# Force settings to run so that the python path is modified
|
||||
|
||||
settings.INSTALLED_APPS # pylint: disable=pointless-statement
|
||||
|
||||
from openedx.core.lib.django_startup import autostartup
|
||||
@@ -18,6 +19,7 @@ from openedx.core.lib.xblock_utils import xblock_local_resource_url
|
||||
import xmodule.x_module
|
||||
import cms.lib.xblock.runtime
|
||||
|
||||
from startup_configurations.validate_config import validate_cms_config
|
||||
from openedx.core.djangoapps.theming.core import enable_theming
|
||||
from openedx.core.djangoapps.theming.helpers import is_comprehensive_theming_enabled
|
||||
|
||||
@@ -40,9 +42,6 @@ def run():
|
||||
|
||||
add_mimetypes()
|
||||
|
||||
if settings.FEATURES.get('USE_CUSTOM_THEME', False):
|
||||
enable_theme()
|
||||
|
||||
# In order to allow descriptors to use a handler url, we need to
|
||||
# monkey-patch the x_module library.
|
||||
# TODO: Remove this code when Runtimes are no longer created by modulestores
|
||||
@@ -50,6 +49,9 @@ def run():
|
||||
xmodule.x_module.descriptor_global_handler_url = cms.lib.xblock.runtime.handler_url
|
||||
xmodule.x_module.descriptor_global_local_resource_url = xblock_local_resource_url
|
||||
|
||||
# validate configurations on startup
|
||||
validate_cms_config(settings)
|
||||
|
||||
|
||||
def add_mimetypes():
|
||||
"""
|
||||
@@ -63,34 +65,3 @@ def add_mimetypes():
|
||||
mimetypes.add_type('application/x-font-opentype', '.otf')
|
||||
mimetypes.add_type('application/x-font-ttf', '.ttf')
|
||||
mimetypes.add_type('application/font-woff', '.woff')
|
||||
|
||||
|
||||
def enable_theme():
|
||||
"""
|
||||
Enable the settings for a custom theme, whose files should be stored
|
||||
in ENV_ROOT/themes/THEME_NAME (e.g., edx_all/themes/stanford).
|
||||
At this moment this is actually just a fix for collectstatic,
|
||||
(see https://openedx.atlassian.net/browse/TNL-726),
|
||||
but can be improved with a full theming option also for Studio
|
||||
in the future (see lms.startup)
|
||||
"""
|
||||
# Workaround for setting THEME_NAME to an empty
|
||||
# string which is the default due to this ansible
|
||||
# bug: https://github.com/ansible/ansible/issues/4812
|
||||
if settings.THEME_NAME == "":
|
||||
settings.THEME_NAME = None
|
||||
return
|
||||
|
||||
assert settings.FEATURES['USE_CUSTOM_THEME']
|
||||
settings.FAVICON_PATH = 'themes/{name}/images/favicon.ico'.format(
|
||||
name=settings.THEME_NAME
|
||||
)
|
||||
|
||||
# Calculate the location of the theme's files
|
||||
theme_root = settings.ENV_ROOT / "themes" / settings.THEME_NAME
|
||||
|
||||
# Namespace the theme's static files to 'themes/<theme_name>' to
|
||||
# avoid collisions with default edX static files
|
||||
settings.STATICFILES_DIRS.append(
|
||||
(u'themes/{}'.format(settings.THEME_NAME), theme_root / 'static')
|
||||
)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
var getModulesList = function(modules) {
|
||||
var result = [getModule(commonLibrariesPath)];
|
||||
return result.concat(modules.map(function (moduleName) {
|
||||
return result.concat(modules.map(function(moduleName) {
|
||||
return getModule(moduleName, true);
|
||||
}));
|
||||
};
|
||||
@@ -53,7 +53,8 @@
|
||||
'js/factories/settings_graders',
|
||||
'js/factories/textbooks',
|
||||
'js/factories/videos_index',
|
||||
'js/factories/xblock_validation'
|
||||
'js/factories/xblock_validation',
|
||||
'js/programs/program_admin_app'
|
||||
]),
|
||||
/**
|
||||
* By default all the configuration for optimization happens from the command
|
||||
@@ -170,4 +171,5 @@
|
||||
*/
|
||||
logLevel: 1
|
||||
};
|
||||
}())
|
||||
}()) // eslint-disable-line semi
|
||||
// A semicolon on the line above will break the requirejs optimizer
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* globals AjaxPrefix */
|
||||
|
||||
(function(AjaxPrefix) {
|
||||
'use strict';
|
||||
define(['domReady', 'jquery', 'underscore.string', 'backbone', 'gettext',
|
||||
@@ -34,7 +36,7 @@
|
||||
message = str.truncate(jqXHR.responseText, 300);
|
||||
}
|
||||
} else {
|
||||
message = gettext('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.'); //jshint ignore:line
|
||||
message = gettext('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.'); // eslint-disable-line max-len
|
||||
}
|
||||
msg = new NotificationView.Error({
|
||||
'title': gettext("Studio's having trouble saving your work"),
|
||||
@@ -65,5 +67,4 @@
|
||||
main();
|
||||
return main;
|
||||
});
|
||||
|
||||
}).call(this, AjaxPrefix); //jshint ignore:line
|
||||
}).call(this, AjaxPrefix);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;(function(require, define) {
|
||||
(function(require, define) {
|
||||
'use strict';
|
||||
|
||||
if (window) {
|
||||
@@ -94,7 +94,7 @@
|
||||
// end of Annotation tool files
|
||||
|
||||
// externally hosted files
|
||||
'mathjax': '//cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // jshint ignore:line
|
||||
mathjax: '//cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
|
||||
'youtube': [
|
||||
// youtube URL does not end in '.js'. We add '?noext' to the path so
|
||||
// that require.js adds the '.js' to the query component of the URL,
|
||||
@@ -210,12 +210,12 @@
|
||||
window.MathJax.Hub.Config({
|
||||
tex2jax: {
|
||||
inlineMath: [
|
||||
['\\(','\\)'],
|
||||
['[mathjaxinline]','[/mathjaxinline]']
|
||||
['\\(', '\\)'],
|
||||
['[mathjaxinline]', '[/mathjaxinline]']
|
||||
],
|
||||
displayMath: [
|
||||
['\\[','\\]'],
|
||||
['[mathjax]','[/mathjax]']
|
||||
['\\[', '\\]'],
|
||||
['[mathjax]', '[/mathjax]']
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* globals requirejs, requireSerial */
|
||||
|
||||
(function(requirejs, requireSerial) {
|
||||
'use strict';
|
||||
|
||||
@@ -22,9 +24,9 @@
|
||||
'jquery.cookie': 'xmodule_js/common_static/js/vendor/jquery.cookie',
|
||||
'jquery.qtip': 'xmodule_js/common_static/js/vendor/jquery.qtip.min',
|
||||
'jquery.fileupload': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload',
|
||||
'jquery.fileupload-process': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload-process', // jshint ignore:line
|
||||
'jquery.fileupload-validate': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload-validate', // jshint ignore:line
|
||||
'jquery.iframe-transport': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.iframe-transport', // jshint ignore:line
|
||||
'jquery.fileupload-process': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload-process', // eslint-disable-line max-len
|
||||
'jquery.fileupload-validate': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload-validate', // eslint-disable-line max-len
|
||||
'jquery.iframe-transport': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.iframe-transport', // eslint-disable-line max-len
|
||||
'jquery.inputnumber': 'xmodule_js/common_static/js/vendor/html5-input-polyfills/number-polyfill',
|
||||
'jquery.immediateDescendents': 'xmodule_js/common_static/coffee/src/jquery.immediateDescendents',
|
||||
'jquery.simulate': 'xmodule_js/common_static/js/vendor/jquery.simulate',
|
||||
@@ -54,7 +56,7 @@
|
||||
'domReady': 'xmodule_js/common_static/js/vendor/domReady',
|
||||
'URI': 'xmodule_js/common_static/js/vendor/URI.min',
|
||||
'mock-ajax': 'xmodule_js/common_static/js/vendor/mock-ajax',
|
||||
'mathjax': '//cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // jshint ignore:line
|
||||
mathjax: '//cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
|
||||
'youtube': '//www.youtube.com/player_api?noext',
|
||||
'coffee/src/ajax_prefix': 'xmodule_js/common_static/coffee/src/ajax_prefix',
|
||||
'js/spec/test_utils': 'js/spec/test_utils'
|
||||
@@ -290,5 +292,4 @@
|
||||
requireSerial(specHelpers.concat(testFiles), function() {
|
||||
return window.__karma__.start();
|
||||
});
|
||||
|
||||
}).call(this, requirejs, requireSerial); // jshint ignore:line
|
||||
}).call(this, requirejs, requireSerial);
|
||||
|
||||
@@ -1,81 +1,82 @@
|
||||
/* globals sandbox */
|
||||
|
||||
(function(sandbox) {
|
||||
'use strict';
|
||||
require(["jquery", "backbone", "cms/js/main", "edx-ui-toolkit/js/utils/spec-helpers/ajax-helpers", "jquery.cookie"],
|
||||
require(['jquery', 'backbone', 'cms/js/main', 'edx-ui-toolkit/js/utils/spec-helpers/ajax-helpers', 'jquery.cookie'],
|
||||
function($, Backbone, main, AjaxHelpers) {
|
||||
describe("CMS", function() {
|
||||
it("should initialize URL", function() {
|
||||
expect(window.CMS.URL).toBeDefined();
|
||||
});
|
||||
});
|
||||
describe("main helper", function() {
|
||||
beforeEach(function() {
|
||||
this.previousAjaxSettings = $.extend(true, {}, $.ajaxSettings);
|
||||
spyOn($, "cookie").and.callFake(function(param) {
|
||||
if (param === "csrftoken") {
|
||||
return "stubCSRFToken";
|
||||
}
|
||||
describe('CMS', function() {
|
||||
it('should initialize URL', function() {
|
||||
expect(window.CMS.URL).toBeDefined();
|
||||
});
|
||||
});
|
||||
return main();
|
||||
});
|
||||
afterEach(function() {
|
||||
$.ajaxSettings = this.previousAjaxSettings;
|
||||
return $.ajaxSettings;
|
||||
});
|
||||
it("turn on Backbone emulateHTTP", function() {
|
||||
expect(Backbone.emulateHTTP).toBeTruthy();
|
||||
});
|
||||
it("setup AJAX CSRF token", function() {
|
||||
expect($.ajaxSettings.headers["X-CSRFToken"]).toEqual("stubCSRFToken");
|
||||
});
|
||||
});
|
||||
describe("AJAX Errors", function() {
|
||||
var server;
|
||||
server = null;
|
||||
beforeEach(function() {
|
||||
appendSetFixtures(sandbox({
|
||||
id: "page-notification"
|
||||
}));
|
||||
});
|
||||
afterEach(function() {
|
||||
return server && server.restore();
|
||||
});
|
||||
it("successful AJAX request does not pop an error notification", function() {
|
||||
server = AjaxHelpers.server([
|
||||
200, {
|
||||
"Content-Type": "application/json"
|
||||
}, "{}"
|
||||
]);
|
||||
expect($("#page-notification")).toBeEmpty();
|
||||
$.ajax("/test");
|
||||
expect($("#page-notification")).toBeEmpty();
|
||||
server.respond();
|
||||
expect($("#page-notification")).toBeEmpty();
|
||||
});
|
||||
it("AJAX request with error should pop an error notification", function() {
|
||||
server = AjaxHelpers.server([
|
||||
500, {
|
||||
"Content-Type": "application/json"
|
||||
}, "{}"
|
||||
]);
|
||||
$.ajax("/test");
|
||||
server.respond();
|
||||
expect($("#page-notification")).not.toBeEmpty();
|
||||
expect($("#page-notification")).toContainElement('div.wrapper-notification-error');
|
||||
});
|
||||
it("can override AJAX request with error so it does not pop an error notification", function() {
|
||||
server = AjaxHelpers.server([
|
||||
500, {
|
||||
"Content-Type": "application/json"
|
||||
}, "{}"
|
||||
]);
|
||||
$.ajax({
|
||||
url: "/test",
|
||||
notifyOnError: false
|
||||
describe('main helper', function() {
|
||||
beforeEach(function() {
|
||||
this.previousAjaxSettings = $.extend(true, {}, $.ajaxSettings);
|
||||
spyOn($, 'cookie').and.callFake(function(param) {
|
||||
if (param === 'csrftoken') {
|
||||
return 'stubCSRFToken';
|
||||
}
|
||||
});
|
||||
return main();
|
||||
});
|
||||
afterEach(function() {
|
||||
$.ajaxSettings = this.previousAjaxSettings;
|
||||
return $.ajaxSettings;
|
||||
});
|
||||
it('turn on Backbone emulateHTTP', function() {
|
||||
expect(Backbone.emulateHTTP).toBeTruthy();
|
||||
});
|
||||
it('setup AJAX CSRF token', function() {
|
||||
expect($.ajaxSettings.headers['X-CSRFToken']).toEqual('stubCSRFToken');
|
||||
});
|
||||
});
|
||||
describe('AJAX Errors', function() {
|
||||
var server;
|
||||
server = null;
|
||||
beforeEach(function() {
|
||||
appendSetFixtures(sandbox({
|
||||
id: 'page-notification'
|
||||
}));
|
||||
});
|
||||
afterEach(function() {
|
||||
return server && server.restore();
|
||||
});
|
||||
it('successful AJAX request does not pop an error notification', function() {
|
||||
server = AjaxHelpers.server([
|
||||
200, {
|
||||
'Content-Type': 'application/json'
|
||||
}, '{}'
|
||||
]);
|
||||
expect($('#page-notification')).toBeEmpty();
|
||||
$.ajax('/test');
|
||||
expect($('#page-notification')).toBeEmpty();
|
||||
server.respond();
|
||||
expect($('#page-notification')).toBeEmpty();
|
||||
});
|
||||
it('AJAX request with error should pop an error notification', function() {
|
||||
server = AjaxHelpers.server([
|
||||
500, {
|
||||
'Content-Type': 'application/json'
|
||||
}, '{}'
|
||||
]);
|
||||
$.ajax('/test');
|
||||
server.respond();
|
||||
expect($('#page-notification')).not.toBeEmpty();
|
||||
expect($('#page-notification')).toContainElement('div.wrapper-notification-error');
|
||||
});
|
||||
it('can override AJAX request with error so it does not pop an error notification', function() {
|
||||
server = AjaxHelpers.server([
|
||||
500, {
|
||||
'Content-Type': 'application/json'
|
||||
}, '{}'
|
||||
]);
|
||||
$.ajax({
|
||||
url: '/test',
|
||||
notifyOnError: false
|
||||
});
|
||||
server.respond();
|
||||
expect($('#page-notification')).toBeEmpty();
|
||||
});
|
||||
});
|
||||
server.respond();
|
||||
expect($("#page-notification")).toBeEmpty();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
}).call(this, sandbox); //jshint ignore:line
|
||||
}).call(this, sandbox);
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* globals requirejs, requireSerial */
|
||||
|
||||
(function(requirejs, requireSerial) {
|
||||
'use strict';
|
||||
|
||||
@@ -21,9 +23,9 @@
|
||||
'jquery.cookie': 'xmodule_js/common_static/js/vendor/jquery.cookie',
|
||||
'jquery.qtip': 'xmodule_js/common_static/js/vendor/jquery.qtip.min',
|
||||
'jquery.fileupload': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload',
|
||||
'jquery.fileupload-process': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload-process', // jshint ignore:line
|
||||
'jquery.fileupload-validate': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload-validate', // jshint ignore:line
|
||||
'jquery.iframe-transport': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.iframe-transport', // jshint ignore:line
|
||||
'jquery.fileupload-process': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload-process', // eslint-disable-line max-len
|
||||
'jquery.fileupload-validate': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.fileupload-validate', // eslint-disable-line max-len
|
||||
'jquery.iframe-transport': 'xmodule_js/common_static/js/vendor/jQuery-File-Upload/js/jquery.iframe-transport', // eslint-disable-line max-len
|
||||
'jquery.inputnumber': 'xmodule_js/common_static/js/vendor/html5-input-polyfills/number-polyfill',
|
||||
'jquery.immediateDescendents': 'xmodule_js/common_static/coffee/src/jquery.immediateDescendents',
|
||||
'datepair': 'xmodule_js/common_static/js/vendor/timepicker/datepair',
|
||||
@@ -46,7 +48,7 @@
|
||||
'draggabilly': 'xmodule_js/common_static/js/vendor/draggabilly',
|
||||
'domReady': 'xmodule_js/common_static/js/vendor/domReady',
|
||||
'URI': 'xmodule_js/common_static/js/vendor/URI.min',
|
||||
'mathjax': '//cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // jshint ignore:line
|
||||
mathjax: '//cdn.mathjax.org/mathjax/2.6-latest/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
|
||||
'youtube': '//www.youtube.com/player_api?noext',
|
||||
'coffee/src/ajax_prefix': 'xmodule_js/common_static/coffee/src/ajax_prefix'
|
||||
},
|
||||
@@ -206,5 +208,4 @@
|
||||
requireSerial(specHelpers.concat(testFiles), function() {
|
||||
return window.__karma__.start();
|
||||
});
|
||||
|
||||
}).call(this, requirejs, requireSerial); // jshint ignore:line
|
||||
}).call(this, requirejs, requireSerial);
|
||||
|
||||
@@ -24,7 +24,6 @@ define(['jquery', 'backbone', 'xblock/runtime.v1', 'URI', 'gettext', 'js/utils/m
|
||||
StudioRuntime = {};
|
||||
|
||||
BaseRuntime.v1 = (function(_super) {
|
||||
|
||||
__extends(v1, _super);
|
||||
|
||||
v1.prototype.handlerUrl = function(element, handlerName, suffix, query) {
|
||||
@@ -150,11 +149,9 @@ define(['jquery', 'backbone', 'xblock/runtime.v1', 'URI', 'gettext', 'js/utils/m
|
||||
};
|
||||
|
||||
return v1;
|
||||
|
||||
})(XBlock.Runtime.v1);
|
||||
|
||||
PreviewRuntime.v1 = (function(_super) {
|
||||
|
||||
__extends(v1, _super);
|
||||
|
||||
function v1() {
|
||||
@@ -164,11 +161,9 @@ define(['jquery', 'backbone', 'xblock/runtime.v1', 'URI', 'gettext', 'js/utils/m
|
||||
v1.prototype.handlerPrefix = '/preview/xblock';
|
||||
|
||||
return v1;
|
||||
|
||||
})(BaseRuntime.v1);
|
||||
|
||||
StudioRuntime.v1 = (function(_super) {
|
||||
|
||||
__extends(v1, _super);
|
||||
|
||||
function v1() {
|
||||
@@ -178,7 +173,6 @@ define(['jquery', 'backbone', 'xblock/runtime.v1', 'URI', 'gettext', 'js/utils/m
|
||||
v1.prototype.handlerPrefix = '/xblock';
|
||||
|
||||
return v1;
|
||||
|
||||
})(BaseRuntime.v1);
|
||||
|
||||
// Install the runtime's into the global namespace
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
require([
|
||||
"domReady",
|
||||
"jquery",
|
||||
"underscore",
|
||||
"gettext",
|
||||
"common/js/components/views/feedback_notification",
|
||||
"common/js/components/views/feedback_prompt",
|
||||
"js/utils/date_utils",
|
||||
"js/utils/module",
|
||||
"js/utils/handle_iframe_binding",
|
||||
"edx-ui-toolkit/js/dropdown-menu/dropdown-menu-view",
|
||||
"jquery.ui",
|
||||
"jquery.leanModal",
|
||||
"jquery.form",
|
||||
"jquery.smoothScroll"
|
||||
],
|
||||
'domReady',
|
||||
'jquery',
|
||||
'underscore',
|
||||
'gettext',
|
||||
'common/js/components/views/feedback_notification',
|
||||
'common/js/components/views/feedback_prompt',
|
||||
'js/utils/date_utils',
|
||||
'js/utils/module',
|
||||
'js/utils/handle_iframe_binding',
|
||||
'edx-ui-toolkit/js/dropdown-menu/dropdown-menu-view',
|
||||
'jquery.ui',
|
||||
'jquery.leanModal',
|
||||
'jquery.form',
|
||||
'jquery.smoothScroll'
|
||||
],
|
||||
function(
|
||||
domReady,
|
||||
$,
|
||||
@@ -27,113 +27,110 @@ require([
|
||||
DropdownMenuView
|
||||
)
|
||||
{
|
||||
var $body;
|
||||
|
||||
var $body;
|
||||
domReady(function() {
|
||||
var dropdownMenuView;
|
||||
|
||||
domReady(function() {
|
||||
var dropdownMenuView;
|
||||
|
||||
$body = $('body');
|
||||
$body = $('body');
|
||||
|
||||
$body.on('click', '.embeddable-xml-input', function() {
|
||||
$(this).select();
|
||||
});
|
||||
$body.on('click', '.embeddable-xml-input', function() {
|
||||
$(this).select();
|
||||
});
|
||||
|
||||
$body.addClass('js');
|
||||
$body.addClass('js');
|
||||
|
||||
// alerts/notifications - manual close
|
||||
$('.action-alert-close, .alert.has-actions .nav-actions a').bind('click', hideAlert);
|
||||
$('.action-notification-close').bind('click', hideNotification);
|
||||
// alerts/notifications - manual close
|
||||
$('.action-alert-close, .alert.has-actions .nav-actions a').bind('click', hideAlert);
|
||||
$('.action-notification-close').bind('click', hideNotification);
|
||||
|
||||
// nav - dropdown related
|
||||
$body.click(function(e) {
|
||||
$('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown');
|
||||
$('.nav-dd .nav-item .title').removeClass('is-selected');
|
||||
});
|
||||
// nav - dropdown related
|
||||
$body.click(function(e) {
|
||||
$('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown');
|
||||
$('.nav-dd .nav-item .title').removeClass('is-selected');
|
||||
});
|
||||
|
||||
$('.nav-dd .nav-item, .filterable-column .nav-item').click(function(e) {
|
||||
$('.nav-dd .nav-item, .filterable-column .nav-item').click(function(e) {
|
||||
$subnav = $(this).find('.wrapper-nav-sub');
|
||||
$title = $(this).find('.title');
|
||||
|
||||
$subnav = $(this).find('.wrapper-nav-sub');
|
||||
$title = $(this).find('.title');
|
||||
|
||||
if ($subnav.hasClass('is-shown')) {
|
||||
$subnav.removeClass('is-shown');
|
||||
$title.removeClass('is-selected');
|
||||
} else {
|
||||
$('.nav-dd .nav-item .title').removeClass('is-selected');
|
||||
$('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown');
|
||||
$title.addClass('is-selected');
|
||||
$subnav.addClass('is-shown');
|
||||
if ($subnav.hasClass('is-shown')) {
|
||||
$subnav.removeClass('is-shown');
|
||||
$title.removeClass('is-selected');
|
||||
} else {
|
||||
$('.nav-dd .nav-item .title').removeClass('is-selected');
|
||||
$('.nav-dd .nav-item .wrapper-nav-sub').removeClass('is-shown');
|
||||
$title.addClass('is-selected');
|
||||
$subnav.addClass('is-shown');
|
||||
// if propagation is not stopped, the event will bubble up to the
|
||||
// body element, which will close the dropdown.
|
||||
e.stopPropagation();
|
||||
}
|
||||
});
|
||||
e.stopPropagation();
|
||||
}
|
||||
});
|
||||
|
||||
// general link management - new window/tab
|
||||
$('a[rel="external"]:not([title])').attr('title', gettext('This link will open in a new browser window/tab'));
|
||||
$('a[rel="external"]').attr('target', '_blank');
|
||||
// general link management - new window/tab
|
||||
$('a[rel="external"]:not([title])').attr('title', gettext('This link will open in a new browser window/tab'));
|
||||
$('a[rel="external"]').attr('target', '_blank');
|
||||
|
||||
// general link management - lean modal window
|
||||
$('a[rel="modal"]').attr('title', gettext('This link will open in a modal window')).leanModal({
|
||||
overlay: 0.50,
|
||||
closeButton: '.action-modal-close'
|
||||
});
|
||||
$('.action-modal-close').click(function(e) {
|
||||
(e).preventDefault();
|
||||
});
|
||||
// general link management - lean modal window
|
||||
$('a[rel="modal"]').attr('title', gettext('This link will open in a modal window')).leanModal({
|
||||
overlay: 0.50,
|
||||
closeButton: '.action-modal-close'
|
||||
});
|
||||
$('.action-modal-close').click(function(e) {
|
||||
(e).preventDefault();
|
||||
});
|
||||
|
||||
// general link management - smooth scrolling page links
|
||||
$('a[rel*="view"][href^="#"]').bind('click', smoothScrollLink);
|
||||
// general link management - smooth scrolling page links
|
||||
$('a[rel*="view"][href^="#"]').bind('click', smoothScrollLink);
|
||||
|
||||
IframeUtils.iframeBinding();
|
||||
IframeUtils.iframeBinding();
|
||||
|
||||
// disable ajax caching in IE so that backbone fetches work
|
||||
if ($.browser.msie) {
|
||||
$.ajaxSetup({ cache: false });
|
||||
}
|
||||
// disable ajax caching in IE so that backbone fetches work
|
||||
if ($.browser.msie) {
|
||||
$.ajaxSetup({cache: false});
|
||||
}
|
||||
|
||||
//Initiate the edx tool kit dropdown menu
|
||||
if ($('.js-header-user-menu').length){
|
||||
dropdownMenuView = new DropdownMenuView({
|
||||
el: '.js-header-user-menu'
|
||||
// Initiate the edx tool kit dropdown menu
|
||||
if ($('.js-header-user-menu').length) {
|
||||
dropdownMenuView = new DropdownMenuView({
|
||||
el: '.js-header-user-menu'
|
||||
});
|
||||
dropdownMenuView.postRender();
|
||||
}
|
||||
});
|
||||
dropdownMenuView.postRender();
|
||||
}
|
||||
});
|
||||
|
||||
function smoothScrollLink(e) {
|
||||
(e).preventDefault();
|
||||
function smoothScrollLink(e) {
|
||||
(e).preventDefault();
|
||||
|
||||
$.smoothScroll({
|
||||
offset: -200,
|
||||
easing: 'swing',
|
||||
speed: 1000,
|
||||
scrollElement: null,
|
||||
scrollTarget: $(this).attr('href')
|
||||
});
|
||||
}
|
||||
$.smoothScroll({
|
||||
offset: -200,
|
||||
easing: 'swing',
|
||||
speed: 1000,
|
||||
scrollElement: null,
|
||||
scrollTarget: $(this).attr('href')
|
||||
});
|
||||
}
|
||||
|
||||
function smoothScrollTop(e) {
|
||||
(e).preventDefault();
|
||||
function smoothScrollTop(e) {
|
||||
(e).preventDefault();
|
||||
|
||||
$.smoothScroll({
|
||||
offset: -200,
|
||||
easing: 'swing',
|
||||
speed: 1000,
|
||||
scrollElement: null,
|
||||
scrollTarget: $('#view-top')
|
||||
});
|
||||
}
|
||||
$.smoothScroll({
|
||||
offset: -200,
|
||||
easing: 'swing',
|
||||
speed: 1000,
|
||||
scrollElement: null,
|
||||
scrollTarget: $('#view-top')
|
||||
});
|
||||
}
|
||||
|
||||
function hideNotification(e) {
|
||||
(e).preventDefault();
|
||||
$(this).closest('.wrapper-notification').removeClass('is-shown').addClass('is-hiding').attr('aria-hidden', 'true');
|
||||
}
|
||||
function hideNotification(e) {
|
||||
(e).preventDefault();
|
||||
$(this).closest('.wrapper-notification').removeClass('is-shown').addClass('is-hiding').attr('aria-hidden', 'true');
|
||||
}
|
||||
|
||||
function hideAlert(e) {
|
||||
(e).preventDefault();
|
||||
$(this).closest('.wrapper-alert').removeClass('is-shown');
|
||||
}
|
||||
|
||||
}); // end require()
|
||||
function hideAlert(e) {
|
||||
(e).preventDefault();
|
||||
$(this).closest('.wrapper-alert').removeClass('is-shown');
|
||||
}
|
||||
}); // end require()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Backbone.js Application Collection: Certificates
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'backbone',
|
||||
'gettext',
|
||||
'js/certificates/models/certificate'
|
||||
@@ -29,7 +29,7 @@ function(Backbone, gettext, Certificate) {
|
||||
} catch (ex) {
|
||||
// If it didn't parse, and `certificate_info` is an object then return as it is
|
||||
// otherwise return empty array
|
||||
if (typeof certificate_info === 'object'){
|
||||
if (typeof certificate_info === 'object') {
|
||||
return_array = certificate_info;
|
||||
}
|
||||
else {
|
||||
@@ -44,28 +44,28 @@ function(Backbone, gettext, Certificate) {
|
||||
return return_array;
|
||||
},
|
||||
|
||||
onModelRemoved: function () {
|
||||
onModelRemoved: function() {
|
||||
// remove the certificate web preview UI.
|
||||
if(window.certWebPreview && this.length === 0) {
|
||||
if (window.certWebPreview && this.length === 0) {
|
||||
window.certWebPreview.remove();
|
||||
}
|
||||
this.toggleAddNewItemButtonState();
|
||||
},
|
||||
|
||||
onModelAdd: function () {
|
||||
onModelAdd: function() {
|
||||
this.toggleAddNewItemButtonState();
|
||||
},
|
||||
|
||||
toggleAddNewItemButtonState: function() {
|
||||
// user can create a new item e.g certificate; if not exceeded the maxAllowed limit.
|
||||
if(this.length >= this.maxAllowed) {
|
||||
$(".action-add").addClass('action-add-hidden');
|
||||
if (this.length >= this.maxAllowed) {
|
||||
$('.action-add').addClass('action-add-hidden');
|
||||
} else {
|
||||
$(".action-add").removeClass('action-add-hidden');
|
||||
$('.action-add').removeClass('action-add-hidden');
|
||||
}
|
||||
},
|
||||
|
||||
parse: function (certificatesJson) {
|
||||
parse: function(certificatesJson) {
|
||||
// Transforms the provided JSON into a Certificates collection
|
||||
var modelArray = this.certificate_array(certificatesJson);
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Backbone.js Application Collection: Certificate Signatories
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'backbone',
|
||||
'js/certificates/models/signatory'
|
||||
],
|
||||
|
||||
@@ -11,7 +11,7 @@ The RequireJS Optimizer is only enabled in Studio at present, so the page factor
|
||||
We do intend to enable page factories on the LMS too.
|
||||
*/
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'jquery',
|
||||
'js/certificates/collections/certificates',
|
||||
'js/certificates/models/certificate',
|
||||
@@ -20,7 +20,7 @@ define([ // jshint ignore:line
|
||||
],
|
||||
function($, CertificatesCollection, Certificate, CertificatesPage, CertificatePreview) {
|
||||
'use strict';
|
||||
return function (certificatesJson, certificateUrl, courseOutlineUrl, course_modes, certificate_web_view_url,
|
||||
return function(certificatesJson, certificateUrl, courseOutlineUrl, course_modes, certificate_web_view_url,
|
||||
is_active, certificate_activation_handler_url) {
|
||||
// Initialize the model collection, passing any necessary options to the constructor
|
||||
var certificatesCollection = new CertificatesCollection(certificatesJson, {
|
||||
@@ -31,7 +31,7 @@ function($, CertificatesCollection, Certificate, CertificatesPage, CertificatePr
|
||||
|
||||
// associating the certificate_preview globally.
|
||||
// need to show / hide this view in some other places.
|
||||
if(!window.certWebPreview && certificate_web_view_url) {
|
||||
if (!window.certWebPreview && certificate_web_view_url) {
|
||||
window.certWebPreview = new CertificatePreview({
|
||||
course_modes: course_modes,
|
||||
certificate_web_view_url: certificate_web_view_url,
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
// Backbone.js Application Model: Certificate
|
||||
|
||||
define([
|
||||
'underscore',
|
||||
'backbone',
|
||||
'backbone-relational',
|
||||
'backbone.associations',
|
||||
'gettext',
|
||||
'cms/js/main',
|
||||
'js/certificates/models/signatory',
|
||||
'js/certificates/collections/signatories'
|
||||
],
|
||||
'underscore',
|
||||
'backbone',
|
||||
'backbone-relational',
|
||||
'backbone.associations',
|
||||
'gettext',
|
||||
'cms/js/main',
|
||||
'js/certificates/models/signatory',
|
||||
'js/certificates/collections/signatories'
|
||||
],
|
||||
function(_, Backbone, BackboneRelational, BackboneAssociations, gettext, CoffeeSrcMain,
|
||||
SignatoryModel, SignatoryCollection) {
|
||||
'use strict';
|
||||
@@ -78,7 +78,7 @@ define([
|
||||
attributes: {name: true}
|
||||
};
|
||||
}
|
||||
var allSignatoriesValid = _.every(attrs.signatories.models, function(signatory){
|
||||
var allSignatoriesValid = _.every(attrs.signatories.models, function(signatory) {
|
||||
return signatory.isValid();
|
||||
});
|
||||
if (!allSignatoriesValid) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Backbone.js Application Model: Certificate Signatory
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'underscore',
|
||||
'backbone',
|
||||
'backbone-relational'
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
// Custom matcher library for Jasmine test assertions
|
||||
// http://tobyho.com/2012/01/30/write-a-jasmine-matcher/
|
||||
|
||||
define(['jquery'], function($) { // jshint ignore:line
|
||||
define(['jquery'], function($) { // eslint-disable-line no-unused-vars
|
||||
'use strict';
|
||||
return function () {
|
||||
return function() {
|
||||
jasmine.addMatchers({
|
||||
toBeCorrectValuesInModel: function () {
|
||||
toBeCorrectValuesInModel: function() {
|
||||
// Assert the value being tested has key values which match the provided values
|
||||
return {
|
||||
compare: function (actual, values) {
|
||||
var passed = _.every(values, function (value, key) {
|
||||
compare: function(actual, values) {
|
||||
var passed = _.every(values, function(value, key) {
|
||||
return actual.get(key) === value;
|
||||
}.bind(this));
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Jasmine Test Suite: Certifiate Model
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'js/certificates/models/certificate',
|
||||
'js/certificates/collections/certificates'
|
||||
],
|
||||
@@ -11,7 +11,7 @@ function(CertificateModel, CertificateCollection) {
|
||||
beforeEach(function() {
|
||||
this.newModelOptions = {add: true};
|
||||
this.model = new CertificateModel({editing: true}, this.newModelOptions);
|
||||
this.collection = new CertificateCollection([ this.model ], {certificateUrl: '/outline'});
|
||||
this.collection = new CertificateCollection([this.model], {certificateUrl: '/outline'});
|
||||
});
|
||||
|
||||
describe('Basic', function() {
|
||||
@@ -39,18 +39,16 @@ function(CertificateModel, CertificateCollection) {
|
||||
|
||||
describe('Validation', function() {
|
||||
it('requires a name', function() {
|
||||
var model = new CertificateModel({ name: '' }, this.newModelOptions);
|
||||
var model = new CertificateModel({name: ''}, this.newModelOptions);
|
||||
|
||||
expect(model.isValid()).toBeFalsy();
|
||||
});
|
||||
|
||||
it('can pass validation', function() {
|
||||
var model = new CertificateModel({ name: 'foo' }, this.newModelOptions);
|
||||
var model = new CertificateModel({name: 'foo'}, this.newModelOptions);
|
||||
|
||||
expect(model.isValid()).toBeTruthy();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Jasmine Test Suite: Certifiate Details View
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'underscore',
|
||||
'js/models/course',
|
||||
'js/certificates/collections/certificates',
|
||||
@@ -41,15 +41,15 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
inputSignatoryTitle: '.signatory-title-input',
|
||||
inputSignatoryOrganization: '.signatory-organization-input'
|
||||
};
|
||||
var verifyAndConfirmPrompt = function(promptSpy, promptText){
|
||||
var verifyAndConfirmPrompt = function(promptSpy, promptText) {
|
||||
ViewHelpers.verifyPromptShowing(promptSpy, gettext(promptText));
|
||||
ViewHelpers.confirmPrompt(promptSpy);
|
||||
ViewHelpers.verifyPromptHidden(promptSpy);
|
||||
};
|
||||
|
||||
describe('Certificate Details Spec:', function() {
|
||||
var setValuesToInputs = function (view, values) {
|
||||
_.each(values, function (value, selector) {
|
||||
var setValuesToInputs = function(view, values) {
|
||||
_.each(values, function(value, selector) {
|
||||
if (SELECTORS[selector]) {
|
||||
view.$(SELECTORS[selector]).val(value);
|
||||
view.$(SELECTORS[selector]).trigger('change');
|
||||
@@ -96,15 +96,15 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
is_active: true
|
||||
}, this.newModelOptions);
|
||||
|
||||
this.collection = new CertificatesCollection([ this.model ], {
|
||||
certificateUrl: '/certificates/'+ window.course.id
|
||||
this.collection = new CertificatesCollection([this.model], {
|
||||
certificateUrl: '/certificates/' + window.course.id
|
||||
});
|
||||
this.model.set('id', 0);
|
||||
this.view = new CertificateDetailsView({
|
||||
model: this.model
|
||||
});
|
||||
appendSetFixtures(this.view.render().el);
|
||||
CustomMatchers(); // jshint ignore:line
|
||||
CustomMatchers();
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
@@ -120,44 +120,43 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
|
||||
|
||||
describe('The Certificate Details view', function() {
|
||||
|
||||
it('should parse a JSON string collection into a Backbone model collection', function () {
|
||||
var course_title = "Test certificate course title override 2";
|
||||
it('should parse a JSON string collection into a Backbone model collection', function() {
|
||||
var course_title = 'Test certificate course title override 2';
|
||||
var CERTIFICATE_JSON = '[{"course_title": "' + course_title + '", "signatories":"[]"}]';
|
||||
this.collection.parse(CERTIFICATE_JSON);
|
||||
var model = this.collection.at(1);
|
||||
expect(model.get('course_title')).toEqual(course_title);
|
||||
});
|
||||
|
||||
it('should parse a JSON object collection into a Backbone model collection', function () {
|
||||
var course_title = "Test certificate course title override 2";
|
||||
it('should parse a JSON object collection into a Backbone model collection', function() {
|
||||
var course_title = 'Test certificate course title override 2';
|
||||
var CERTIFICATE_JSON_OBJECT = [{
|
||||
"course_title" : course_title,
|
||||
"signatories" : "[]"
|
||||
'course_title': course_title,
|
||||
'signatories': '[]'
|
||||
}];
|
||||
this.collection.parse(CERTIFICATE_JSON_OBJECT);
|
||||
var model = this.collection.at(1);
|
||||
expect(model.get('course_title')).toEqual(course_title);
|
||||
});
|
||||
|
||||
it('should have empty certificate collection if there is an error parsing certifcate JSON', function () {
|
||||
var CERTIFICATE_INVALID_JSON = '[{"course_title": Test certificate course title override, "signatories":"[]"}]'; // jshint ignore:line
|
||||
it('should have empty certificate collection if there is an error parsing certifcate JSON', function() {
|
||||
var CERTIFICATE_INVALID_JSON = '[{"course_title": Test certificate course title override, "signatories":"[]"}]'; // eslint-disable-line max-len
|
||||
var collection_length = this.collection.length;
|
||||
this.collection.parse(CERTIFICATE_INVALID_JSON);
|
||||
//collection length should remain the same since we have error parsing JSON
|
||||
// collection length should remain the same since we have error parsing JSON
|
||||
expect(this.collection.length).toEqual(collection_length);
|
||||
});
|
||||
|
||||
it('should display the certificate course title override', function () {
|
||||
it('should display the certificate course title override', function() {
|
||||
expect(this.view.$(SELECTORS.course_title)).toExist();
|
||||
expect(this.view.$(SELECTORS.course_title)).toContainText('Test Course Title Override');
|
||||
});
|
||||
|
||||
it('should present an Edit action', function () {
|
||||
it('should present an Edit action', function() {
|
||||
expect(this.view.$('.edit')).toExist();
|
||||
});
|
||||
|
||||
it('should change to "edit" mode when clicking the Edit button and confirming the prompt', function(){
|
||||
it('should change to "edit" mode when clicking the Edit button and confirming the prompt', function() {
|
||||
expect(this.view.$('.action-edit .edit')).toExist();
|
||||
var promptSpy = ViewHelpers.createPromptSpy();
|
||||
this.view.$('.action-edit .edit').click();
|
||||
@@ -165,67 +164,64 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
expect(this.model.get('editing')).toBe(true);
|
||||
});
|
||||
|
||||
it('should not show confirmation prompt when clicked on "edit" in case of inactive certificate', function(){
|
||||
it('should not show confirmation prompt when clicked on "edit" in case of inactive certificate', function() {
|
||||
this.model.set('is_active', false);
|
||||
expect(this.view.$('.action-edit .edit')).toExist();
|
||||
this.view.$('.action-edit .edit').click();
|
||||
expect(this.model.get('editing')).toBe(true);
|
||||
});
|
||||
|
||||
it('should not present a Edit action if user is not global staff and certificate is active', function () {
|
||||
it('should not present a Edit action if user is not global staff and certificate is active', function() {
|
||||
window.CMS.User = {isGlobalStaff: false};
|
||||
appendSetFixtures(this.view.render().el);
|
||||
expect(this.view.$('.action-edit .edit')).not.toExist();
|
||||
});
|
||||
|
||||
it('should present a Delete action', function () {
|
||||
it('should present a Delete action', function() {
|
||||
expect(this.view.$('.action-delete .delete')).toExist();
|
||||
});
|
||||
|
||||
it('should not present a Delete action if user is not global staff and certificate is active', function () {
|
||||
it('should not present a Delete action if user is not global staff and certificate is active', function() {
|
||||
window.CMS.User = {isGlobalStaff: false};
|
||||
appendSetFixtures(this.view.render().el);
|
||||
expect(this.view.$('.action-delete .delete')).not.toExist();
|
||||
});
|
||||
|
||||
it('should prompt the user when when clicking the Delete button', function(){
|
||||
it('should prompt the user when when clicking the Delete button', function() {
|
||||
expect(this.view.$('.action-delete .delete')).toExist();
|
||||
this.view.$('.action-delete .delete').click();
|
||||
});
|
||||
|
||||
it('should scroll to top after rendering if necessary', function () {
|
||||
it('should scroll to top after rendering if necessary', function() {
|
||||
$.smoothScroll = jasmine.createSpy('jQuery.smoothScroll');
|
||||
appendSetFixtures(this.view.render().el);
|
||||
expect($.smoothScroll).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Signatory details', function(){
|
||||
|
||||
describe('Signatory details', function() {
|
||||
beforeEach(function() {
|
||||
this.view.render();
|
||||
});
|
||||
|
||||
it('displays certificate signatories details', function(){
|
||||
it('displays certificate signatories details', function() {
|
||||
this.view.$('.show-details').click();
|
||||
expect(this.view.$(SELECTORS.signatory_name_value)).toContainText('');
|
||||
expect(this.view.$(SELECTORS.signatory_title_value)).toContainText('');
|
||||
expect(this.view.$(SELECTORS.signatory_organization_value)).toContainText('');
|
||||
});
|
||||
|
||||
it('should present Edit action on signaotry', function () {
|
||||
it('should present Edit action on signaotry', function() {
|
||||
expect(this.view.$(SELECTORS.edit_signatory)).toExist();
|
||||
});
|
||||
|
||||
it('should not present Edit action on signaotry if user is not global staff and certificate is active', function () {
|
||||
it('should not present Edit action on signaotry if user is not global staff and certificate is active', function() {
|
||||
window.CMS.User = {isGlobalStaff: false};
|
||||
this.view.render();
|
||||
expect(this.view.$(SELECTORS.edit_signatory)).not.toExist();
|
||||
});
|
||||
|
||||
it('supports in-line editing of signatory information', function() {
|
||||
|
||||
this.view.$(SELECTORS.edit_signatory).click();
|
||||
expect(this.view.$(SELECTORS.inputSignatoryName)).toExist();
|
||||
expect(this.view.$(SELECTORS.inputSignatoryTitle)).toExist();
|
||||
@@ -233,7 +229,6 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
});
|
||||
|
||||
it('correctly persists changes made during in-line signatory editing', function() {
|
||||
|
||||
var requests = AjaxHelpers.requests(this),
|
||||
notificationSpy = ViewHelpers.createNotificationSpy();
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Jasmine Test Suite: Certifiate Editor View
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'underscore',
|
||||
'js/models/course',
|
||||
'js/certificates/models/certificate',
|
||||
@@ -37,14 +37,14 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
note: '.wrapper-delete-button',
|
||||
addSignatoryButton: '.action-add-signatory',
|
||||
signatoryDeleteButton: '.signatory-panel-delete',
|
||||
uploadSignatureButton:'.action-upload-signature',
|
||||
uploadSignatureButton: '.action-upload-signature',
|
||||
uploadDialog: 'form.upload-dialog',
|
||||
uploadDialogButton: '.action-upload',
|
||||
uploadDialogFileInput: 'form.upload-dialog input[type=file]',
|
||||
saveCertificateButton: 'button.action-primary'
|
||||
};
|
||||
|
||||
var clickDeleteItem = function (that, promptText, element, url) {
|
||||
var clickDeleteItem = function(that, promptText, element, url) {
|
||||
var requests = AjaxHelpers.requests(that),
|
||||
promptSpy = ViewHelpers.createPromptSpy(),
|
||||
notificationSpy = ViewHelpers.createNotificationSpy();
|
||||
@@ -53,7 +53,7 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
ViewHelpers.verifyPromptShowing(promptSpy, promptText);
|
||||
ViewHelpers.confirmPrompt(promptSpy);
|
||||
ViewHelpers.verifyPromptHidden(promptSpy);
|
||||
if (!_.isUndefined(url) && !_.isEmpty(url)){
|
||||
if (!_.isUndefined(url) && !_.isEmpty(url)) {
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', url);
|
||||
expect(_.last(requests).requestHeaders['X-HTTP-Method-Override']).toBe('DELETE');
|
||||
ViewHelpers.verifyNotificationShowing(notificationSpy, /Deleting/);
|
||||
@@ -62,7 +62,7 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
}
|
||||
};
|
||||
|
||||
var showConfirmPromptAndClickCancel = function (view, element, promptText) {
|
||||
var showConfirmPromptAndClickCancel = function(view, element, promptText) {
|
||||
var promptSpy = ViewHelpers.createPromptSpy();
|
||||
view.$(element).click();
|
||||
ViewHelpers.verifyPromptShowing(promptSpy, promptText);
|
||||
@@ -70,15 +70,15 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
ViewHelpers.verifyPromptHidden(promptSpy);
|
||||
};
|
||||
|
||||
var uploadFile = function (file_path, requests){
|
||||
var uploadFile = function(file_path, requests) {
|
||||
$(SELECTORS.uploadDialogFileInput).change();
|
||||
$(SELECTORS.uploadDialogButton).click();
|
||||
AjaxHelpers.respondWithJson(requests, {asset: {url: file_path}});
|
||||
};
|
||||
|
||||
describe('Certificate editor view', function() {
|
||||
var setValuesToInputs = function (view, values) {
|
||||
_.each(values, function (value, selector) {
|
||||
var setValuesToInputs = function(view, values) {
|
||||
_.each(values, function(value, selector) {
|
||||
if (SELECTORS[selector]) {
|
||||
view.$(SELECTORS[selector]).val(value);
|
||||
view.$(SELECTORS[selector]).trigger('change');
|
||||
@@ -86,8 +86,8 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
});
|
||||
};
|
||||
var basicModalTpl = readFixtures('basic-modal.underscore'),
|
||||
modalButtonTpl = readFixtures('modal-button.underscore'),
|
||||
uploadDialogTpl = readFixtures('upload-dialog.underscore');
|
||||
modalButtonTpl = readFixtures('modal-button.underscore'),
|
||||
uploadDialogTpl = readFixtures('upload-dialog.underscore');
|
||||
|
||||
beforeEach(function() {
|
||||
TemplateHelpers.installTemplates(['certificate-editor', 'signatory-editor'], true);
|
||||
@@ -110,8 +110,8 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
|
||||
}, this.newModelOptions);
|
||||
|
||||
this.collection = new CertificatesCollection([ this.model ], {
|
||||
certificateUrl: '/certificates/'+ window.course.id
|
||||
this.collection = new CertificatesCollection([this.model], {
|
||||
certificateUrl: '/certificates/' + window.course.id
|
||||
});
|
||||
this.model.set('id', 0);
|
||||
this.view = new CertificateEditorView({
|
||||
@@ -119,7 +119,7 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
max_signatories_limit: MAX_SIGNATORIES_LIMIT
|
||||
});
|
||||
appendSetFixtures(this.view.render().el);
|
||||
CustomMatchers(); // jshint ignore:line
|
||||
CustomMatchers();
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
@@ -127,20 +127,20 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
delete window.CMS.User;
|
||||
});
|
||||
|
||||
describe('Basic', function () {
|
||||
beforeEach(function(){
|
||||
describe('Basic', function() {
|
||||
beforeEach(function() {
|
||||
appendSetFixtures(
|
||||
$("<script>", { id: "basic-modal-tpl", type: "text/template" }).text(basicModalTpl)
|
||||
$('<script>', {id: 'basic-modal-tpl', type: 'text/template'}).text(basicModalTpl)
|
||||
);
|
||||
appendSetFixtures(
|
||||
$("<script>", { id: "modal-button-tpl", type: "text/template" }).text(modalButtonTpl)
|
||||
$('<script>', {id: 'modal-button-tpl', type: 'text/template'}).text(modalButtonTpl)
|
||||
);
|
||||
appendSetFixtures(
|
||||
$("<script>", { id: "upload-dialog-tpl", type: "text/template" }).text(uploadDialogTpl)
|
||||
$('<script>', {id: 'upload-dialog-tpl', type: 'text/template'}).text(uploadDialogTpl)
|
||||
);
|
||||
});
|
||||
|
||||
afterEach(function(){
|
||||
afterEach(function() {
|
||||
$('.wrapper-modal-window-assetupload').remove();
|
||||
});
|
||||
|
||||
@@ -198,11 +198,10 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
});
|
||||
|
||||
it('user can only add signatories up to limit', function() {
|
||||
for(var i = 1; i < MAX_SIGNATORIES_LIMIT ; i++) {
|
||||
for (var i = 1; i < MAX_SIGNATORIES_LIMIT; i++) {
|
||||
this.view.$(SELECTORS.addSignatoryButton).click();
|
||||
}
|
||||
expect(this.view.$(SELECTORS.addSignatoryButton)).toHaveClass('disableClick');
|
||||
|
||||
});
|
||||
|
||||
it('user can add signatories if not reached the upper limit', function() {
|
||||
@@ -214,14 +213,14 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
|
||||
it('user can add signatories when signatory reached the upper limit But after deleting a signatory',
|
||||
function() {
|
||||
for(var i = 1; i < MAX_SIGNATORIES_LIMIT ; i++) {
|
||||
for (var i = 1; i < MAX_SIGNATORIES_LIMIT; i++) {
|
||||
this.view.$(SELECTORS.addSignatoryButton).click();
|
||||
}
|
||||
expect(this.view.$(SELECTORS.addSignatoryButton)).toHaveClass('disableClick');
|
||||
|
||||
// now delete anyone of the signatory, Add signatory should be enabled.
|
||||
var signatory = this.model.get('signatories').at(0);
|
||||
var text = 'Delete "'+ signatory.get('name') +'" from the list of signatories?';
|
||||
var text = 'Delete "' + signatory.get('name') + '" from the list of signatories?';
|
||||
clickDeleteItem(this, text, SELECTORS.signatoryDeleteButton + ':first');
|
||||
expect(this.view.$(SELECTORS.addSignatoryButton)).not.toHaveClass('disableClick');
|
||||
}
|
||||
@@ -273,8 +272,8 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
var signatory = this.model.get('signatories').at(0);
|
||||
var signatory_url = '/certificates/signatory';
|
||||
signatory.url = signatory_url;
|
||||
spyOn(signatory, "isNew").and.returnValue(false);
|
||||
var text = 'Delete "'+ signatory.get('name') +'" from the list of signatories?';
|
||||
spyOn(signatory, 'isNew').and.returnValue(false);
|
||||
var text = 'Delete "' + signatory.get('name') + '" from the list of signatories?';
|
||||
clickDeleteItem(this, text, SELECTORS.signatoryDeleteButton + ':first', signatory_url);
|
||||
expect(this.model.get('signatories').length).toEqual(total_signatories - 1);
|
||||
});
|
||||
@@ -282,13 +281,13 @@ function(_, Course, CertificateModel, SignatoryModel, CertificatesCollection, Ce
|
||||
it('can cancel deletion of signatories', function() {
|
||||
this.view.$(SELECTORS.addSignatoryButton).click();
|
||||
var signatory = this.model.get('signatories').at(0);
|
||||
spyOn(signatory, "isNew").and.returnValue(false);
|
||||
spyOn(signatory, 'isNew').and.returnValue(false);
|
||||
// add one more signatory
|
||||
this.view.$(SELECTORS.addSignatoryButton).click();
|
||||
var total_signatories = this.model.get('signatories').length;
|
||||
var signatory_url = '/certificates/signatory';
|
||||
signatory.url = signatory_url;
|
||||
var text = 'Delete "'+ signatory.get('name') +'" from the list of signatories?';
|
||||
var text = 'Delete "' + signatory.get('name') + '" from the list of signatories?';
|
||||
showConfirmPromptAndClickCancel(this.view, SELECTORS.signatoryDeleteButton + ':first', text);
|
||||
expect(this.model.get('signatories').length).toEqual(total_signatories);
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Jasmine Test Suite: Certificate Web Preview
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'underscore',
|
||||
'jquery',
|
||||
'js/models/course',
|
||||
@@ -19,8 +19,7 @@ function(_, $, Course, CertificatePreview, TemplateHelpers, ViewHelpers, AjaxHel
|
||||
};
|
||||
|
||||
describe('Certificate Web Preview Spec:', function() {
|
||||
|
||||
var selectDropDownByText = function ( element, value ) {
|
||||
var selectDropDownByText = function(element, value) {
|
||||
if (value) {
|
||||
element.val(value);
|
||||
element.trigger('change');
|
||||
@@ -44,7 +43,7 @@ function(_, $, Course, CertificatePreview, TemplateHelpers, ViewHelpers, AjaxHel
|
||||
el: $('.preview-certificate'),
|
||||
course_modes: ['test1', 'test2', 'test3'],
|
||||
certificate_web_view_url: '/users/1/courses/orgX/009/2016?preview=test1',
|
||||
certificate_activation_handler_url: '/certificates/activation/'+ window.course.id,
|
||||
certificate_activation_handler_url: '/certificates/activation/' + window.course.id,
|
||||
is_active: true
|
||||
});
|
||||
appendSetFixtures(this.view.render().el);
|
||||
@@ -56,14 +55,14 @@ function(_, $, Course, CertificatePreview, TemplateHelpers, ViewHelpers, AjaxHel
|
||||
});
|
||||
|
||||
describe('Certificate preview', function() {
|
||||
it('course mode event should call when user choose a new mode', function () {
|
||||
it('course mode event should call when user choose a new mode', function() {
|
||||
spyOn(this.view, 'courseModeChanged');
|
||||
this.view.delegateEvents();
|
||||
selectDropDownByText(this.view.$(SELECTORS.course_modes), 'test3');
|
||||
expect(this.view.courseModeChanged).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('course mode selection updating the link successfully', function () {
|
||||
it('course mode selection updating the link successfully', function() {
|
||||
selectDropDownByText(this.view.$(SELECTORS.course_modes), 'test1');
|
||||
expect(this.view.$(SELECTORS.preview_certificate).attr('href')).
|
||||
toEqual('/users/1/courses/orgX/009/2016?preview=test1');
|
||||
@@ -77,54 +76,52 @@ function(_, $, Course, CertificatePreview, TemplateHelpers, ViewHelpers, AjaxHel
|
||||
toEqual('/users/1/courses/orgX/009/2016?preview=test3');
|
||||
});
|
||||
|
||||
it('toggle certificate activation event works fine', function () {
|
||||
it('toggle certificate activation event works fine', function() {
|
||||
spyOn(this.view, 'toggleCertificateActivation');
|
||||
this.view.delegateEvents();
|
||||
this.view.$(SELECTORS.activate_certificate).click();
|
||||
expect(this.view.toggleCertificateActivation).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('toggle certificate activation button should not be present if user is not global staff', function () {
|
||||
it('toggle certificate activation button should not be present if user is not global staff', function() {
|
||||
window.CMS.User = {isGlobalStaff: false};
|
||||
appendSetFixtures(this.view.render().el);
|
||||
expect(this.view.$(SELECTORS.activate_certificate)).not.toExist();
|
||||
});
|
||||
|
||||
it('certificate deactivation works fine', function () {
|
||||
it('certificate deactivation works fine', function() {
|
||||
var requests = AjaxHelpers.requests(this),
|
||||
notificationSpy = ViewHelpers.createNotificationSpy();
|
||||
this.view.$(SELECTORS.activate_certificate).click();
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', '/certificates/activation/'+ window.course.id, {
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', '/certificates/activation/' + window.course.id, {
|
||||
is_active: false
|
||||
});
|
||||
ViewHelpers.verifyNotificationShowing(notificationSpy, /Deactivating/);
|
||||
|
||||
});
|
||||
|
||||
it('certificate activation works fine', function () {
|
||||
it('certificate activation works fine', function() {
|
||||
var requests = AjaxHelpers.requests(this),
|
||||
notificationSpy = ViewHelpers.createNotificationSpy();
|
||||
this.view.is_active = false;
|
||||
this.view.$(SELECTORS.activate_certificate).click();
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', '/certificates/activation/'+ window.course.id, {
|
||||
AjaxHelpers.expectJsonRequest(requests, 'POST', '/certificates/activation/' + window.course.id, {
|
||||
is_active: true
|
||||
});
|
||||
ViewHelpers.verifyNotificationShowing(notificationSpy, /Activating/);
|
||||
|
||||
});
|
||||
|
||||
it('certificate should be deactivate when method "remove" called', function () {
|
||||
it('certificate should be deactivate when method "remove" called', function() {
|
||||
this.view.remove();
|
||||
expect(this.view.is_active).toBe(false);
|
||||
});
|
||||
|
||||
it('certificate web preview should be removed when method "remove" called', function () {
|
||||
it('certificate web preview should be removed when method "remove" called', function() {
|
||||
this.view.remove();
|
||||
expect(this.view.el.innerHTML).toBe('');
|
||||
});
|
||||
|
||||
it('method "show" should call the render function', function () {
|
||||
spyOn(this.view, "render");
|
||||
it('method "show" should call the render function', function() {
|
||||
spyOn(this.view, 'render');
|
||||
this.view.show();
|
||||
expect(this.view.render).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Jasmine Test Suite: Certificate List View
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'underscore',
|
||||
'js/models/course',
|
||||
'js/certificates/collections/certificates',
|
||||
@@ -16,7 +16,7 @@ define([ // jshint ignore:line
|
||||
'js/certificates/spec/custom_matchers'
|
||||
],
|
||||
function(_, Course, CertificatesCollection, CertificateModel, CertificateDetailsView, CertificateEditorView,
|
||||
CertificateItemView, CertificatesListView, CertificatePreview, Notification, AjaxHelpers, TemplateHelpers,
|
||||
CertificateItemView, CertificatesListView, CertificatePreview, Notification, AjaxHelpers, TemplateHelpers,
|
||||
CustomMatchers) {
|
||||
'use strict';
|
||||
|
||||
@@ -54,14 +54,14 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
}, {add: true});
|
||||
|
||||
this.collection = new CertificatesCollection([], {
|
||||
certificateUrl: '/certificates/'+ window.course.id
|
||||
certificateUrl: '/certificates/' + window.course.id
|
||||
});
|
||||
this.model.set('id', 0);
|
||||
this.view = new CertificatesListView({
|
||||
collection: this.collection
|
||||
});
|
||||
appendSetFixtures(this.view.render().el);
|
||||
CustomMatchers(); // jshint ignore:line
|
||||
CustomMatchers();
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
@@ -70,7 +70,7 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
delete window.CMS.User;
|
||||
});
|
||||
|
||||
describe('empty template', function () {
|
||||
describe('empty template', function() {
|
||||
it('should be rendered if no certificates', function() {
|
||||
expect(this.view.$(SELECTORS.noContent)).toExist();
|
||||
expect(this.view.$(SELECTORS.noContent)).toContainText(emptyMessage);
|
||||
@@ -99,7 +99,6 @@ function(_, Course, CertificatesCollection, CertificateModel, CertificateDetails
|
||||
this.collection.add(this.model);
|
||||
expect(this.view.$(SELECTORS.itemEditView)).toExist();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Backbone Application View: Certificate Details
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'jquery',
|
||||
'underscore',
|
||||
'underscore.string',
|
||||
@@ -21,7 +21,7 @@ function($, _, str, gettext, BaseView, SignatoryModel, SignatoryDetailsView, Vie
|
||||
'click .edit': 'editCertificate'
|
||||
},
|
||||
|
||||
className: function () {
|
||||
className: function() {
|
||||
// Determine the CSS class names for this model instance
|
||||
return [
|
||||
'collection',
|
||||
@@ -40,7 +40,7 @@ function($, _, str, gettext, BaseView, SignatoryModel, SignatoryDetailsView, Vie
|
||||
// Flip the model into 'editing' mode
|
||||
if (event && event.preventDefault) { event.preventDefault(); }
|
||||
var self = this;
|
||||
if (this.model.get("is_active") === true){
|
||||
if (this.model.get('is_active') === true) {
|
||||
ViewUtils.confirmThenRunOperation(
|
||||
gettext('Edit this certificate?'),
|
||||
gettext('This certificate has already been activated and is live. Are you sure you want to continue editing?'),
|
||||
@@ -50,7 +50,7 @@ function($, _, str, gettext, BaseView, SignatoryModel, SignatoryDetailsView, Vie
|
||||
}
|
||||
);
|
||||
}
|
||||
else{
|
||||
else {
|
||||
this.model.set('editing', true);
|
||||
}
|
||||
},
|
||||
@@ -63,15 +63,15 @@ function($, _, str, gettext, BaseView, SignatoryModel, SignatoryDetailsView, Vie
|
||||
showDetails: this.showDetails || showDetails || false
|
||||
});
|
||||
this.$el.html(_.template(certificateDetailsTemplate)(attrs));
|
||||
if(this.showDetails || showDetails) {
|
||||
if (this.showDetails || showDetails) {
|
||||
var self = this;
|
||||
this.model.get("signatories").each(function (modelSignatory) {
|
||||
this.model.get('signatories').each(function(modelSignatory) {
|
||||
var signatory_detail_view = new SignatoryDetailsView({model: modelSignatory});
|
||||
self.$('div.signatory-details-list').append($(signatory_detail_view.render().$el));
|
||||
});
|
||||
}
|
||||
|
||||
if(this.model.collection.length > 0 && window.certWebPreview) {
|
||||
if (this.model.collection.length > 0 && window.certWebPreview) {
|
||||
window.certWebPreview.show();
|
||||
}
|
||||
$.smoothScroll({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Backbone Application View: Certificate Editor
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'jquery',
|
||||
'underscore',
|
||||
'backbone',
|
||||
@@ -30,7 +30,7 @@ function($, _, Backbone, gettext,
|
||||
'click .action-add-signatory': 'addSignatory'
|
||||
},
|
||||
|
||||
className: function () {
|
||||
className: function() {
|
||||
// Determine the CSS class names for this model instance
|
||||
var index = this.model.collection.indexOf(this.model);
|
||||
|
||||
@@ -44,12 +44,12 @@ function($, _, Backbone, gettext,
|
||||
|
||||
initialize: function(options) {
|
||||
// Set up the initial state of the attributes set for this model instance
|
||||
_.bindAll(this, "onSignatoryRemoved", "clearErrorMessage");
|
||||
_.bindAll(this, 'onSignatoryRemoved', 'clearErrorMessage');
|
||||
this.max_signatories_limit = options.max_signatories_limit || MAX_SIGNATORIES_LIMIT;
|
||||
this.template = _.template(certificateEditorTemplate);
|
||||
this.eventAgg = _.extend({}, Backbone.Events);
|
||||
this.eventAgg.bind("onSignatoryRemoved", this.onSignatoryRemoved);
|
||||
this.eventAgg.bind("onSignatoryUpdated", this.clearErrorMessage);
|
||||
this.eventAgg.bind('onSignatoryRemoved', this.onSignatoryRemoved);
|
||||
this.eventAgg.bind('onSignatoryUpdated', this.clearErrorMessage);
|
||||
ListItemEditorView.prototype.initialize.call(this);
|
||||
},
|
||||
|
||||
@@ -69,7 +69,7 @@ function($, _, Backbone, gettext,
|
||||
ListItemEditorView.prototype.render.call(this);
|
||||
var self = this;
|
||||
// Ensure we have at least one signatory associated with the certificate.
|
||||
this.model.get("signatories").each(function( modelSignatory) {
|
||||
this.model.get('signatories').each(function(modelSignatory) {
|
||||
var signatory_view = new SignatoryEditorView({
|
||||
model: modelSignatory,
|
||||
isEditingAllCollections: true,
|
||||
@@ -83,14 +83,14 @@ function($, _, Backbone, gettext,
|
||||
|
||||
addSignatory: function() {
|
||||
// Append a new signatory to the certificate model's signatories collection
|
||||
var signatory = new SignatoryModel({certificate: this.getSaveableModel()}); // jshint ignore:line
|
||||
var signatory = new SignatoryModel({certificate: this.getSaveableModel()}); // eslint-disable-line max-len, no-unused-vars
|
||||
this.render();
|
||||
},
|
||||
|
||||
disableAddSignatoryButton: function() {
|
||||
// Disable the 'Add Signatory' link if the constraint has been met.
|
||||
if(this.$(".signatory-edit-list > div.signatory-edit").length >= this.max_signatories_limit) {
|
||||
this.$(".action-add-signatory").addClass("disableClick");
|
||||
if (this.$('.signatory-edit-list > div.signatory-edit').length >= this.max_signatories_limit) {
|
||||
this.$('.action-add-signatory').addClass('disableClick');
|
||||
}
|
||||
},
|
||||
|
||||
@@ -118,7 +118,7 @@ function($, _, Backbone, gettext,
|
||||
if (event && event.preventDefault) { event.preventDefault(); }
|
||||
this.model.set(
|
||||
'name', this.$('.collection-name-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
},
|
||||
|
||||
@@ -128,7 +128,7 @@ function($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'description',
|
||||
this.$('.certificate-description-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
},
|
||||
|
||||
@@ -138,7 +138,7 @@ function($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'course_title',
|
||||
this.$('.certificate-course-title-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
},
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// Backbone Application View: Certificate Item
|
||||
// Renders an editor view or a details view depending on the state of the underlying model.
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'gettext',
|
||||
'js/views/list_item',
|
||||
'js/certificates/views/certificate_details',
|
||||
'js/certificates/views/certificate_editor'
|
||||
],
|
||||
function (gettext, ListItemView, CertificateDetailsView, CertificateEditorView) {
|
||||
function(gettext, ListItemView, CertificateDetailsView, CertificateEditorView) {
|
||||
'use strict';
|
||||
var CertificateItemView = ListItemView.extend({
|
||||
events: {
|
||||
@@ -20,7 +20,7 @@ function (gettext, ListItemView, CertificateDetailsView, CertificateEditorView)
|
||||
// Translators: This field pertains to the custom label for a certificate.
|
||||
itemDisplayName: gettext('certificate'),
|
||||
|
||||
attributes: function () {
|
||||
attributes: function() {
|
||||
// Retrieves the defined attribute set
|
||||
return {
|
||||
'id': this.model.get('id'),
|
||||
|
||||
@@ -2,31 +2,31 @@
|
||||
// User can preview the certificate web layout/styles. 'Preview Certificate' button will open a new tab in LMS for
|
||||
// the selected course mode from the drop down.
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'underscore',
|
||||
'gettext',
|
||||
'js/views/baseview',
|
||||
'common/js/components/utils/view_utils',
|
||||
'common/js/components/views/feedback_notification',
|
||||
"text!templates/certificate-web-preview.underscore"
|
||||
'text!templates/certificate-web-preview.underscore'
|
||||
],
|
||||
function(_, gettext, BaseView, ViewUtils, NotificationView, certificateWebPreviewTemplate) {
|
||||
'use strict';
|
||||
var CertificateWebPreview = BaseView.extend({
|
||||
el: $(".preview-certificate"),
|
||||
el: $('.preview-certificate'),
|
||||
events: {
|
||||
"change #course-modes": "courseModeChanged",
|
||||
"click .activate-cert": "toggleCertificateActivation"
|
||||
'change #course-modes': 'courseModeChanged',
|
||||
'click .activate-cert': 'toggleCertificateActivation'
|
||||
},
|
||||
|
||||
initialize: function (options) {
|
||||
initialize: function(options) {
|
||||
this.course_modes = options.course_modes;
|
||||
this.certificate_web_view_url = options.certificate_web_view_url;
|
||||
this.certificate_activation_handler_url = options.certificate_activation_handler_url;
|
||||
this.is_active = options.is_active;
|
||||
},
|
||||
|
||||
render: function () {
|
||||
render: function() {
|
||||
this.$el.html(_.template(certificateWebPreviewTemplate)({
|
||||
course_modes: this.course_modes,
|
||||
certificate_web_view_url: this.certificate_web_view_url,
|
||||
@@ -36,9 +36,9 @@ function(_, gettext, BaseView, ViewUtils, NotificationView, certificateWebPrevie
|
||||
},
|
||||
|
||||
toggleCertificateActivation: function() {
|
||||
var msg = "Activating";
|
||||
if(this.is_active) {
|
||||
msg = "Deactivating";
|
||||
var msg = 'Activating';
|
||||
if (this.is_active) {
|
||||
msg = 'Deactivating';
|
||||
}
|
||||
|
||||
var notification = new NotificationView.Mini({
|
||||
@@ -47,24 +47,24 @@ function(_, gettext, BaseView, ViewUtils, NotificationView, certificateWebPrevie
|
||||
|
||||
$.ajax({
|
||||
url: this.certificate_activation_handler_url,
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
contentType: "application/json",
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
data: JSON.stringify({
|
||||
is_active: !this.is_active
|
||||
}),
|
||||
beforeSend: function() {
|
||||
notification.show();
|
||||
},
|
||||
success: function(){
|
||||
success: function() {
|
||||
notification.hide();
|
||||
location.reload();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
courseModeChanged: function (event) {
|
||||
$('.preview-certificate-link').attr('href', function(index, value){
|
||||
courseModeChanged: function(event) {
|
||||
$('.preview-certificate-link').attr('href', function(index, value) {
|
||||
return value.replace(/preview=([^&]+)/, function() {
|
||||
return 'preview=' + event.target.options[event.target.selectedIndex].text;
|
||||
});
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
// Backbone Application View: Certificates List
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'gettext',
|
||||
'js/views/list',
|
||||
'js/certificates/views/certificate_item'
|
||||
],
|
||||
function (gettext, ListView, CertificateItemView) {
|
||||
function(gettext, ListView, CertificateItemView) {
|
||||
'use strict';
|
||||
var CertificatesListView = ListView.extend({
|
||||
tagName: 'div',
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// Backbone Application View: Certificates Page
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'jquery',
|
||||
'underscore',
|
||||
'gettext',
|
||||
'js/views/pages/base_page',
|
||||
'js/certificates/views/certificates_list'
|
||||
],
|
||||
function ($, _, gettext, BasePage, CertificatesListView) {
|
||||
function($, _, gettext, BasePage, CertificatesListView) {
|
||||
'use strict';
|
||||
var CertificatesPage = BasePage.extend({
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Backbone Application View: Signatory Details
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'jquery',
|
||||
'underscore',
|
||||
'underscore.string',
|
||||
@@ -13,7 +13,7 @@ define([ // jshint ignore:line
|
||||
'text!templates/signatory-details.underscore',
|
||||
'text!templates/signatory-actions.underscore'
|
||||
],
|
||||
function ($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, SignatoryEditorView,
|
||||
function($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, SignatoryEditorView,
|
||||
signatoryDetailsTemplate, signatoryActionsTemplate) {
|
||||
'use strict';
|
||||
var SignatoryDetailsView = BaseView.extend({
|
||||
@@ -25,7 +25,7 @@ function ($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, Sign
|
||||
|
||||
},
|
||||
|
||||
className: function () {
|
||||
className: function() {
|
||||
// Determine the CSS class names for this model instance
|
||||
var index = this.model.collection.indexOf(this.model);
|
||||
return [
|
||||
@@ -62,13 +62,13 @@ function ($, _, str, Backbone, gettext, TemplateUtils, ViewUtils, BaseView, Sign
|
||||
// Persist the data for this model
|
||||
if (event && event.preventDefault) { event.preventDefault(); }
|
||||
var certificate = this.model.get('certificate');
|
||||
if (!certificate.isValid()){
|
||||
if (!certificate.isValid()) {
|
||||
return;
|
||||
}
|
||||
var self = this;
|
||||
ViewUtils.runOperationShowingMessage(
|
||||
gettext('Saving'),
|
||||
function () {
|
||||
function() {
|
||||
var dfd = $.Deferred();
|
||||
var actionableModel = certificate;
|
||||
actionableModel.save({}, {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Backbone Application View: Signatory Editor
|
||||
|
||||
define([ // jshint ignore:line
|
||||
define([
|
||||
'jquery',
|
||||
'underscore',
|
||||
'backbone',
|
||||
@@ -13,7 +13,7 @@ define([ // jshint ignore:line
|
||||
'js/views/uploads',
|
||||
'text!templates/signatory-editor.underscore'
|
||||
],
|
||||
function ($, _, Backbone, gettext,
|
||||
function($, _, Backbone, gettext,
|
||||
TemplateUtils, ViewUtils, PromptView, NotificationView, FileUploadModel, FileUploadDialog,
|
||||
signatoryEditorTemplate) {
|
||||
'use strict';
|
||||
@@ -28,7 +28,7 @@ function ($, _, Backbone, gettext,
|
||||
'click .action-upload-signature': 'uploadSignatureImage'
|
||||
},
|
||||
|
||||
className: function () {
|
||||
className: function() {
|
||||
// Determine the CSS class names for this model instance
|
||||
var index = this.getModelIndex(this.model);
|
||||
return [
|
||||
@@ -39,7 +39,7 @@ function ($, _, Backbone, gettext,
|
||||
|
||||
initialize: function(options) {
|
||||
// Set up the initial state of the attributes set for this model instance
|
||||
_.bindAll(this, 'render');
|
||||
_.bindAll(this, 'render');
|
||||
this.model.bind('change', this.render);
|
||||
this.eventAgg = options.eventAgg;
|
||||
this.isEditingAllCollections = options.isEditingAllCollections;
|
||||
@@ -58,8 +58,8 @@ function ($, _, Backbone, gettext,
|
||||
getTotalSignatoriesOnServer: function() {
|
||||
// Retrieve the count of signatories stored server-side
|
||||
var count = 0;
|
||||
this.model.collection.each(function( modelSignatory) {
|
||||
if(!modelSignatory.isNew()) {
|
||||
this.model.collection.each(function(modelSignatory) {
|
||||
if (!modelSignatory.isNew()) {
|
||||
count ++;
|
||||
}
|
||||
});
|
||||
@@ -87,10 +87,10 @@ function ($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'name',
|
||||
this.$('.signatory-name-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
this.toggleValidationErrorMessage('name');
|
||||
this.eventAgg.trigger("onSignatoryUpdated", this.model);
|
||||
this.eventAgg.trigger('onSignatoryUpdated', this.model);
|
||||
},
|
||||
|
||||
setSignatoryTitle: function(event) {
|
||||
@@ -99,10 +99,10 @@ function ($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'title',
|
||||
this.$('.signatory-title-input').val(),
|
||||
{ silent:true }
|
||||
{silent: true}
|
||||
);
|
||||
this.toggleValidationErrorMessage('title');
|
||||
this.eventAgg.trigger("onSignatoryUpdated", this.model);
|
||||
this.eventAgg.trigger('onSignatoryUpdated', this.model);
|
||||
},
|
||||
|
||||
setSignatoryOrganization: function(event) {
|
||||
@@ -111,9 +111,9 @@ function ($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'organization',
|
||||
this.$('.signatory-organization-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
this.eventAgg.trigger("onSignatoryUpdated", this.model);
|
||||
this.eventAgg.trigger('onSignatoryUpdated', this.model);
|
||||
},
|
||||
|
||||
setSignatorySignatureImagePath: function(event) {
|
||||
@@ -121,7 +121,7 @@ function ($, _, Backbone, gettext,
|
||||
this.model.set(
|
||||
'signature_image_path',
|
||||
this.$('.signatory-signature-input').val(),
|
||||
{ silent: true }
|
||||
{silent: true}
|
||||
);
|
||||
},
|
||||
|
||||
@@ -137,21 +137,21 @@ function ($, _, Backbone, gettext,
|
||||
actions: {
|
||||
primary: {
|
||||
text: gettext('Delete'),
|
||||
click: function () {
|
||||
click: function() {
|
||||
var deleting = new NotificationView.Mini({
|
||||
title: gettext('Deleting')
|
||||
});
|
||||
if (model.isNew()){
|
||||
if (model.isNew()) {
|
||||
model.collection.remove(model);
|
||||
self.eventAgg.trigger("onSignatoryRemoved", model);
|
||||
self.eventAgg.trigger('onSignatoryRemoved', model);
|
||||
}
|
||||
else {
|
||||
deleting.show();
|
||||
model.destroy({
|
||||
wait: true,
|
||||
success: function (model) {
|
||||
success: function(model) {
|
||||
deleting.hide();
|
||||
self.eventAgg.trigger("onSignatoryRemoved", model);
|
||||
self.eventAgg.trigger('onSignatoryRemoved', model);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -172,8 +172,8 @@ function ($, _, Backbone, gettext,
|
||||
uploadSignatureImage: function(event) {
|
||||
event.preventDefault();
|
||||
var upload = new FileUploadModel({
|
||||
title: gettext("Upload signature image."),
|
||||
message: gettext("Image must be in PNG format."),
|
||||
title: gettext('Upload signature image.'),
|
||||
message: gettext('Image must be in PNG format.'),
|
||||
mimeTypes: ['image/png']
|
||||
});
|
||||
var self = this;
|
||||
@@ -192,20 +192,19 @@ function ($, _, Backbone, gettext,
|
||||
* @param string modelAttribute - the attribute of the signatory model e.g. name, title.
|
||||
*/
|
||||
toggleValidationErrorMessage: function(modelAttribute) {
|
||||
var selector = "div.add-signatory-" + modelAttribute;
|
||||
var selector = 'div.add-signatory-' + modelAttribute;
|
||||
if (!this.model.isValid() && _.has(this.model.validationError, modelAttribute)) {
|
||||
|
||||
// Show the error message if it is not exist before.
|
||||
if( !$(selector).hasClass('error')) {
|
||||
if (!$(selector).hasClass('error')) {
|
||||
var errorMessage = this.model.validationError[modelAttribute];
|
||||
$(selector).addClass("error");
|
||||
$(selector).append("<span class='message-error'>" + errorMessage + "</span>");
|
||||
$(selector).addClass('error');
|
||||
$(selector).append("<span class='message-error'>" + errorMessage + '</span>');
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Remove the error message.
|
||||
$(selector).removeClass("error");
|
||||
$(selector + ">span.message-error").remove();
|
||||
$(selector).removeClass('error');
|
||||
$(selector + '>span.message-error').remove();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
define([
|
||||
"underscore",
|
||||
"edx-ui-toolkit/js/pagination/paging-collection",
|
||||
"js/models/asset"
|
||||
'underscore',
|
||||
'edx-ui-toolkit/js/pagination/paging-collection',
|
||||
'js/models/asset'
|
||||
], function(_, PagingCollection, AssetModel) {
|
||||
'use strict';
|
||||
|
||||
var AssetCollection = PagingCollection.extend({
|
||||
assetType: '',
|
||||
model : AssetModel,
|
||||
model: AssetModel,
|
||||
|
||||
state: {
|
||||
firstPage: 0,
|
||||
@@ -37,8 +37,7 @@ define([
|
||||
return PagingCollection.prototype.parse.call(this, response, options);
|
||||
},
|
||||
|
||||
/* jshint unused:false */
|
||||
parseState: function (response, queryParams, state, options) {
|
||||
parseState: function(response) {
|
||||
return {
|
||||
totalRecords: response[0].totalCount,
|
||||
totalPages: Math.ceil(response[0].totalCount / response[0].pageSize)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
define(["backbone", "js/models/chapter"], function(Backbone, ChapterModel) {
|
||||
define(['backbone', 'js/models/chapter'], function(Backbone, ChapterModel) {
|
||||
var ChapterCollection = Backbone.Collection.extend({
|
||||
model: ChapterModel,
|
||||
comparator: "order",
|
||||
comparator: 'order',
|
||||
nextOrder: function() {
|
||||
if(!this.length) return 1;
|
||||
if (!this.length) return 1;
|
||||
return this.last().get('order') + 1;
|
||||
},
|
||||
isEmpty: function() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
define(["backbone", "js/models/component_template"], function(Backbone, ComponentTemplate) {
|
||||
define(['backbone', 'js/models/component_template'], function(Backbone, ComponentTemplate) {
|
||||
return Backbone.Collection.extend({
|
||||
model : ComponentTemplate
|
||||
model: ComponentTemplate
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
define(["backbone", "js/models/settings/course_grader"], function(Backbone, CourseGrader) {
|
||||
define(['backbone', 'js/models/settings/course_grader'], function(Backbone, CourseGrader) {
|
||||
var CourseGraderCollection = Backbone.Collection.extend({
|
||||
model: CourseGrader,
|
||||
sumWeights: function() {
|
||||
return this.reduce(function(subtotal, grader) { return subtotal + grader.get('weight'); }, 0);
|
||||
}
|
||||
});
|
||||
|
||||
var CourseGraderCollection = Backbone.Collection.extend({
|
||||
model : CourseGrader,
|
||||
sumWeights : function() {
|
||||
return this.reduce(function(subtotal, grader) { return subtotal + grader.get('weight'); }, 0);
|
||||
}
|
||||
});
|
||||
|
||||
return CourseGraderCollection;
|
||||
return CourseGraderCollection;
|
||||
}); // end define()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
define(["backbone", "js/models/course_update"], function(Backbone, CourseUpdateModel) {
|
||||
define(['backbone', 'js/models/course_update'], function(Backbone, CourseUpdateModel) {
|
||||
/*
|
||||
The intitializer of this collection must set id to the update's location.url and courseLocation to the course's location. Must pass the
|
||||
collection of updates as [{ date : "month day", content : "html"}]
|
||||
@@ -6,7 +6,7 @@ define(["backbone", "js/models/course_update"], function(Backbone, CourseUpdateM
|
||||
var CourseUpdateCollection = Backbone.Collection.extend({
|
||||
// instantiator must set url
|
||||
|
||||
model : CourseUpdateModel
|
||||
model: CourseUpdateModel
|
||||
});
|
||||
return CourseUpdateCollection;
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
define([
|
||||
'underscore', 'underscore.string', 'backbone', 'gettext', 'js/models/group'
|
||||
],
|
||||
function (_, str, Backbone, gettext, GroupModel) {
|
||||
function(_, str, Backbone, gettext, GroupModel) {
|
||||
'use strict';
|
||||
var GroupCollection = Backbone.Collection.extend({
|
||||
model: GroupModel,
|
||||
@@ -11,7 +11,7 @@ function (_, str, Backbone, gettext, GroupModel) {
|
||||
* @return {Number}
|
||||
*/
|
||||
nextOrder: function() {
|
||||
if(!this.length) {
|
||||
if (!this.length) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ function (_, str, Backbone, gettext, GroupModel) {
|
||||
* @examples
|
||||
* Group A, Group B, Group AA, Group ZZZ etc.
|
||||
*/
|
||||
getNextDefaultGroupName: function () {
|
||||
getNextDefaultGroupName: function() {
|
||||
var index = this.nextOrder(),
|
||||
usedNames = _.pluck(this.toJSON(), 'name'),
|
||||
name = '';
|
||||
@@ -53,7 +53,7 @@ function (_, str, Backbone, gettext, GroupModel) {
|
||||
* @examples
|
||||
* A, B, AA in Group A, Group B, ..., Group AA, etc.
|
||||
*/
|
||||
getGroupId: (function () {
|
||||
getGroupId: (function() {
|
||||
/*
|
||||
Translators: Dictionary used for creation ids that are used in
|
||||
default group names. For example: A, B, AA in Group A,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
define(["backbone", "js/models/metadata"], function(Backbone, MetadataModel) {
|
||||
define(['backbone', 'js/models/metadata'], function(Backbone, MetadataModel) {
|
||||
var MetadataCollection = Backbone.Collection.extend({
|
||||
model : MetadataModel,
|
||||
comparator: "display_name"
|
||||
model: MetadataModel,
|
||||
comparator: 'display_name'
|
||||
});
|
||||
return MetadataCollection;
|
||||
});
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
define(["backbone", "js/models/textbook"],
|
||||
define(['backbone', 'js/models/textbook'],
|
||||
function(Backbone, TextbookModel) {
|
||||
var TextbookCollection = Backbone.Collection.extend({
|
||||
model: TextbookModel,
|
||||
url: function() { return CMS.URL.TEXTBOOKS; }
|
||||
});
|
||||
return TextbookCollection;
|
||||
});
|
||||
var TextbookCollection = Backbone.Collection.extend({
|
||||
model: TextbookModel,
|
||||
url: function() { return CMS.URL.TEXTBOOKS; }
|
||||
});
|
||||
return TextbookCollection;
|
||||
});
|
||||
|
||||
@@ -2,17 +2,17 @@ define([
|
||||
'jquery', 'js/collections/asset', 'js/views/assets', 'jquery.fileupload'
|
||||
], function($, AssetCollection, AssetsView) {
|
||||
'use strict';
|
||||
return function (config) {
|
||||
return function(config) {
|
||||
var assets = new AssetCollection(),
|
||||
assetsView;
|
||||
|
||||
assets.url = config.assetCallbackUrl;
|
||||
assetsView = new AssetsView({
|
||||
collection: assets,
|
||||
el: $('.wrapper-assets'),
|
||||
uploadChunkSizeInMBs: config.uploadChunkSizeInMBs,
|
||||
maxFileSizeInMBs: config.maxFileSizeInMBs,
|
||||
maxFileSizeRedirectUrl: config.maxFileSizeRedirectUrl
|
||||
collection: assets,
|
||||
el: $('.wrapper-assets'),
|
||||
uploadChunkSizeInMBs: config.uploadChunkSizeInMBs,
|
||||
maxFileSizeInMBs: config.maxFileSizeInMBs,
|
||||
maxFileSizeRedirectUrl: config.maxFileSizeRedirectUrl
|
||||
});
|
||||
assetsView.render();
|
||||
};
|
||||
|
||||
@@ -5,7 +5,7 @@ define([
|
||||
],
|
||||
function($, _, XBlockContainerInfo, ContainerPage, ComponentTemplates, xmoduleLoader) {
|
||||
'use strict';
|
||||
return function (componentTemplates, XBlockInfoJson, action, options) {
|
||||
return function(componentTemplates, XBlockInfoJson, action, options) {
|
||||
var main_options = {
|
||||
el: $('#content'),
|
||||
model: new XBlockContainerInfo(XBlockInfoJson, {parse: true}),
|
||||
@@ -13,7 +13,7 @@ function($, _, XBlockContainerInfo, ContainerPage, ComponentTemplates, xmoduleLo
|
||||
templates: new ComponentTemplates(componentTemplates, {parse: true})
|
||||
};
|
||||
|
||||
xmoduleLoader.done(function () {
|
||||
xmoduleLoader.done(function() {
|
||||
var view = new ContainerPage(_.extend(main_options, options));
|
||||
view.render();
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
define(['jquery', 'jquery.form', 'js/views/course_rerun'], function ($) {
|
||||
define(['jquery', 'jquery.form', 'js/views/course_rerun'], function($) {
|
||||
'use strict';
|
||||
return function () {};
|
||||
return function() {};
|
||||
});
|
||||
|
||||
@@ -3,7 +3,7 @@ define([
|
||||
'js/models/course_info', 'js/views/course_info_edit'
|
||||
], function($, CourseUpdateCollection, ModuleInfoModel, CourseInfoModel, CourseInfoEditView) {
|
||||
'use strict';
|
||||
return function (updatesUrl, handoutsLocator, baseAssetUrl, push_notification_enabled) {
|
||||
return function(updatesUrl, handoutsLocator, baseAssetUrl, push_notification_enabled) {
|
||||
var course_updates = new CourseUpdateCollection(),
|
||||
course_handouts, editor;
|
||||
|
||||
@@ -14,10 +14,10 @@ define([
|
||||
});
|
||||
editor = new CourseInfoEditView({
|
||||
el: $('.main-wrapper'),
|
||||
model : new CourseInfoModel({
|
||||
updates : course_updates,
|
||||
base_asset_url : baseAssetUrl,
|
||||
handouts : course_handouts
|
||||
model: new CourseInfoModel({
|
||||
updates: course_updates,
|
||||
base_asset_url: baseAssetUrl,
|
||||
handouts: course_handouts
|
||||
}),
|
||||
push_notification_enabled: push_notification_enabled
|
||||
});
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
define([
|
||||
'js/models/explicit_url', 'js/views/tabs', 'xmodule', 'cms/js/main', 'xblock/cms.runtime.v1'
|
||||
], function (TabsModel, TabsEditView, xmoduleLoader) {
|
||||
], function(TabsModel, TabsEditView, xmoduleLoader) {
|
||||
'use strict';
|
||||
return function (courseLocation, explicitUrl) {
|
||||
xmoduleLoader.done(function () {
|
||||
return function(courseLocation, explicitUrl) {
|
||||
xmoduleLoader.done(function() {
|
||||
var model = new TabsModel({
|
||||
id: courseLocation,
|
||||
explicit_url: explicitUrl
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
define(['gettext', 'common/js/components/views/feedback_prompt'], function(gettext, PromptView) {
|
||||
'use strict';
|
||||
return function (hasUnit, editUnitUrl, courselikeHomeUrl, library, errMsg) {
|
||||
return function(hasUnit, editUnitUrl, courselikeHomeUrl, library, errMsg) {
|
||||
var dialog;
|
||||
if(hasUnit) {
|
||||
if (hasUnit) {
|
||||
dialog = new PromptView({
|
||||
title: gettext('There has been an error while exporting.'),
|
||||
message: gettext('There has been a failure to export to XML at least one component. It is recommended that you go to the edit page and repair the error before attempting another export. Please check that all components on the page are valid and do not display any error messages.'),
|
||||
@@ -28,10 +28,10 @@ define(['gettext', 'common/js/components/views/feedback_prompt'], function(gette
|
||||
var action;
|
||||
if (library) {
|
||||
msg += gettext('Your library could not be exported to XML. There is not enough information to identify the failed component. Inspect your library to identify any problematic components and try again.');
|
||||
action = gettext('Take me to the main library page')
|
||||
action = gettext('Take me to the main library page');
|
||||
} else {
|
||||
msg += gettext('Your course could not be exported to XML. There is not enough information to identify the failed component. Inspect your course to identify any problematic components and try again.');
|
||||
action = gettext('Take me to the main course page')
|
||||
action = gettext('Take me to the main course page');
|
||||
}
|
||||
msg += '</p><p>' + gettext('The raw error message is:') + '</p>' + errMsg;
|
||||
dialog = new PromptView({
|
||||
@@ -49,7 +49,7 @@ define(['gettext', 'common/js/components/views/feedback_prompt'], function(gette
|
||||
secondary: {
|
||||
text: gettext('Cancel'),
|
||||
click: function(view) {
|
||||
view.hide();
|
||||
view.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'js/collections/group_configuration', 'js/models/group_configuration', 'js/views/pages/group_configurations'
|
||||
], function(GroupConfigurationCollection, GroupConfigurationModel, GroupConfigurationsPage) {
|
||||
'use strict';
|
||||
return function (experimentsEnabled, experimentGroupConfigurationsJson, contentGroupConfigurationJson,
|
||||
return function(experimentsEnabled, experimentGroupConfigurationsJson, contentGroupConfigurationJson,
|
||||
groupConfigurationUrl, courseOutlineUrl) {
|
||||
var experimentGroupConfigurations = new GroupConfigurationCollection(
|
||||
experimentGroupConfigurationsJson, {parse: true}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
define([
|
||||
'domReady', 'js/views/import', 'jquery', 'gettext', 'jquery.fileupload', 'jquery.cookie'
|
||||
], function(domReady, Import, $, gettext) {
|
||||
|
||||
'use strict';
|
||||
|
||||
return function (feedbackUrl, library) {
|
||||
return function(feedbackUrl, library) {
|
||||
var dbError;
|
||||
|
||||
if (library) {
|
||||
@@ -27,14 +26,14 @@ define([
|
||||
previousImport = Import.storedImport(),
|
||||
file;
|
||||
|
||||
var onComplete = function () {
|
||||
var onComplete = function() {
|
||||
bar.hide();
|
||||
chooseBtn
|
||||
.find('.copy').html(gettext("Choose new file")).end()
|
||||
.find('.copy').html(gettext('Choose new file')).end()
|
||||
.show();
|
||||
}
|
||||
};
|
||||
|
||||
$(window).on('beforeunload', function (event) { unloading = true; });
|
||||
$(window).on('beforeunload', function(event) { unloading = true; });
|
||||
|
||||
// Display the status of last file upload on page load
|
||||
if (previousImport) {
|
||||
@@ -70,11 +69,11 @@ define([
|
||||
).then(onComplete);
|
||||
|
||||
submitBtn.hide();
|
||||
data.submit().complete(function (result, textStatus, xhr) {
|
||||
data.submit().complete(function(result, textStatus, xhr) {
|
||||
if (xhr.status !== 200) {
|
||||
var serverMsg, errMsg, stage;
|
||||
|
||||
try{
|
||||
try {
|
||||
serverMsg = $.parseJSON(result.responseText) || {};
|
||||
} catch (e) {
|
||||
return;
|
||||
@@ -104,7 +103,7 @@ define([
|
||||
}
|
||||
},
|
||||
|
||||
progressall: function(e, data){
|
||||
progressall: function(e, data) {
|
||||
var percentInt = data.loaded / data.total * 100,
|
||||
percentVal = parseInt(percentInt, 10) + '%',
|
||||
doneAt;
|
||||
@@ -121,7 +120,7 @@ define([
|
||||
|
||||
// Start feedback with delay so that current stage of
|
||||
// import properly updates in session
|
||||
setTimeout(function () { Import.pollStatus(); }, 3000);
|
||||
setTimeout(function() { Import.pollStatus(); }, 3000);
|
||||
} else {
|
||||
bar.show();
|
||||
fill.width(percentVal).html(percentVal);
|
||||
@@ -132,7 +131,7 @@ define([
|
||||
});
|
||||
|
||||
|
||||
var showImportSubmit = function (e) {
|
||||
var showImportSubmit = function(e) {
|
||||
var filepath = $(this).val();
|
||||
|
||||
if (filepath.substr(filepath.length - 6, 6) === 'tar.gz') {
|
||||
@@ -150,10 +149,10 @@ define([
|
||||
}
|
||||
};
|
||||
|
||||
domReady(function () {
|
||||
domReady(function() {
|
||||
// import form setup
|
||||
$('.view-import .file-input').bind('change', showImportSubmit);
|
||||
$('.view-import .choose-file-button, .view-import .choose-file-button-inline').bind('click', function (e) {
|
||||
$('.view-import .choose-file-button, .view-import .choose-file-button-inline').bind('click', function(e) {
|
||||
e.preventDefault();
|
||||
$('.view-import .file-input').click();
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
define(['jquery.form', 'js/index'], function() {
|
||||
'use strict';
|
||||
return function () {
|
||||
return function() {
|
||||
// showing/hiding creation rights UI
|
||||
$('.show-creationrights').click(function(e) {
|
||||
e.preventDefault();
|
||||
@@ -11,11 +11,11 @@ define(['jquery.form', 'js/index'], function() {
|
||||
.toggleClass('current');
|
||||
});
|
||||
|
||||
var reloadPage = function () {
|
||||
var reloadPage = function() {
|
||||
location.reload();
|
||||
};
|
||||
|
||||
var showError = function () {
|
||||
var showError = function() {
|
||||
$('#request-coursecreator-submit')
|
||||
.toggleClass('has-error')
|
||||
.find('.label')
|
||||
@@ -30,7 +30,7 @@ define(['jquery.form', 'js/index'], function() {
|
||||
success: reloadPage
|
||||
});
|
||||
|
||||
$('#request-coursecreator-submit').click(function(event){
|
||||
$('#request-coursecreator-submit').click(function(event) {
|
||||
$(this)
|
||||
.toggleClass('is-disabled is-submitting')
|
||||
.attr('aria-disabled', $(this).hasClass('is-disabled'))
|
||||
|
||||
@@ -5,7 +5,7 @@ define([
|
||||
],
|
||||
function($, _, XBlockInfo, PagedContainerPage, LibraryContainerView, ComponentTemplates, xmoduleLoader) {
|
||||
'use strict';
|
||||
return function (componentTemplates, XBlockInfoJson, options) {
|
||||
return function(componentTemplates, XBlockInfoJson, options) {
|
||||
var main_options = {
|
||||
el: $('#content'),
|
||||
model: new XBlockInfo(XBlockInfoJson, {parse: true}),
|
||||
@@ -15,7 +15,7 @@ function($, _, XBlockInfo, PagedContainerPage, LibraryContainerView, ComponentTe
|
||||
canEdit: true
|
||||
};
|
||||
|
||||
xmoduleLoader.done(function () {
|
||||
xmoduleLoader.done(function() {
|
||||
var view = new PagedContainerPage(_.extend(main_options, options));
|
||||
view.render();
|
||||
});
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
define(['jquery.cookie', 'utility', 'common/js/components/utils/view_utils'], function(cookie, utility, ViewUtils) {
|
||||
'use strict';
|
||||
return function (homepageURL) {
|
||||
return function(homepageURL) {
|
||||
function postJSON(url, data, callback) {
|
||||
$.ajax({
|
||||
type:'POST',
|
||||
type: 'POST',
|
||||
url: url,
|
||||
dataType: 'json',
|
||||
data: data,
|
||||
success: callback,
|
||||
success: callback
|
||||
});
|
||||
}
|
||||
|
||||
// Clear the login error message when credentials are edited
|
||||
$('input#email').on('input',function() {
|
||||
$('input#email').on('input', function() {
|
||||
$('#login_error').removeClass('is-shown');
|
||||
});
|
||||
|
||||
$('input#password').on('input',function() {
|
||||
$('input#password').on('input', function() {
|
||||
$('#login_error').removeClass('is-shown');
|
||||
});
|
||||
|
||||
@@ -29,14 +29,14 @@ define(['jquery.cookie', 'utility', 'common/js/components/utils/view_utils'], fu
|
||||
var submit_data = $('#login_form').serialize();
|
||||
|
||||
postJSON('/login_post', submit_data, function(json) {
|
||||
if(json.success) {
|
||||
if (json.success) {
|
||||
var next = /next=([^&]*)/g.exec(decodeURIComponent(window.location.search));
|
||||
if (next && next.length > 1 && !isExternal(next[1])) {
|
||||
ViewUtils.redirect(next[1]);
|
||||
} else {
|
||||
ViewUtils.redirect(homepageURL);
|
||||
}
|
||||
} else if($('#login_error').length === 0) {
|
||||
} else if ($('#login_error').length === 0) {
|
||||
$('#login_form').prepend(
|
||||
'<div id="login_error" class="message message-status error">' +
|
||||
json.value +
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
define(['underscore', 'gettext', 'js/views/manage_users_and_roles'],
|
||||
function(_, gettext, ManageUsersAndRoles) {
|
||||
'use strict';
|
||||
return function (containerName, users, tplUserURL, current_user_id, allow_actions) {
|
||||
return function(containerName, users, tplUserURL, current_user_id, allow_actions) {
|
||||
function updateMessages(messages) {
|
||||
var local_messages = _.extend({}, messages);
|
||||
local_messages.alreadyMember.title = gettext('Already a course team member');
|
||||
@@ -16,10 +16,10 @@ function(_, gettext, ManageUsersAndRoles) {
|
||||
// Roles order are important: first role is considered initial role (the role added to user when (s)he's added
|
||||
// Last role is considered an admin role (unrestricted access + ability to manage other users' permissions)
|
||||
// Changing roles is performed in promote-demote fashion, so moves only to adjacent roles is allowed
|
||||
var roles = [{key:'staff', name:gettext('Staff')}, {key:'instructor', 'name': gettext("Admin")}];
|
||||
var roles = [{key: 'staff', name: gettext('Staff')}, {key: 'instructor', 'name': gettext('Admin')}];
|
||||
|
||||
var options = {
|
||||
el: $("#content"),
|
||||
el: $('#content'),
|
||||
containerName: containerName,
|
||||
tplUserURL: tplUserURL,
|
||||
roles: roles,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
define(['underscore', 'gettext', 'js/views/manage_users_and_roles'],
|
||||
function(_, gettext, ManageUsersAndRoles) {
|
||||
'use strict';
|
||||
return function (containerName, users, tplUserURL, current_user_id, allow_actions) {
|
||||
return function(containerName, users, tplUserURL, current_user_id, allow_actions) {
|
||||
function updateMessages(messages) {
|
||||
var local_messages = _.extend({}, messages);
|
||||
local_messages.alreadyMember.title = gettext('Already a library team member');
|
||||
@@ -17,13 +17,13 @@ function(_, gettext, ManageUsersAndRoles) {
|
||||
// Last role is considered an admin role (unrestricted access + ability to manage other users' permissions)
|
||||
// Changing roles is performed in promote-demote fashion, so moves only to adjacent roles is allowed
|
||||
var roles = [
|
||||
{key:'library_user', name:gettext('Library User')},
|
||||
{key:'staff', name:gettext('Staff')},
|
||||
{key:'instructor', 'name': gettext("Admin")}
|
||||
{key: 'library_user', name: gettext('Library User')},
|
||||
{key: 'staff', name: gettext('Staff')},
|
||||
{key: 'instructor', 'name': gettext('Admin')}
|
||||
];
|
||||
|
||||
var options = {
|
||||
el: $("#content"),
|
||||
el: $('#content'),
|
||||
containerName: containerName,
|
||||
tplUserURL: tplUserURL,
|
||||
roles: roles,
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'js/views/pages/course_outline', 'js/models/xblock_outline_info'
|
||||
], function(CourseOutlinePage, XBlockOutlineInfo) {
|
||||
'use strict';
|
||||
return function (XBlockOutlineInfoJson, initialStateJson) {
|
||||
return function(XBlockOutlineInfoJson, initialStateJson) {
|
||||
var courseXBlock = new XBlockOutlineInfo(XBlockOutlineInfoJson, {parse: true}),
|
||||
view = new CourseOutlinePage({
|
||||
el: $('#content'),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
define(['jquery', 'jquery.cookie'], function($) {
|
||||
'use strict';
|
||||
return function () {
|
||||
return function() {
|
||||
$('form :input')
|
||||
.focus(function() {
|
||||
$('label[for="' + this.id + '"]').addClass('is-focused');
|
||||
@@ -21,11 +21,11 @@ define(['jquery', 'jquery.cookie'], function($) {
|
||||
notifyOnError: false,
|
||||
data: submit_data,
|
||||
success: function(json) {
|
||||
location.href = '/course/';
|
||||
location.href = '/course/';
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
var json = $.parseJSON(jqXHR.responseText);
|
||||
$('#register_error').html(json.value).stop().addClass('is-shown');
|
||||
var json = $.parseJSON(jqXHR.responseText);
|
||||
$('#register_error').html(json.value).stop().addClass('is-shown');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'jquery', 'js/models/settings/course_details', 'js/views/settings/main'
|
||||
], function($, CourseDetailsModel, MainView) {
|
||||
'use strict';
|
||||
return function (detailsUrl, showMinGradeWarning) {
|
||||
return function(detailsUrl, showMinGradeWarning) {
|
||||
var model;
|
||||
// highlighting labels when fields are focused in
|
||||
$('form :input')
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'jquery', 'gettext', 'js/models/settings/advanced', 'js/views/settings/advanced'
|
||||
], function($, gettext, AdvancedSettingsModel, AdvancedSettingsView) {
|
||||
'use strict';
|
||||
return function (advancedDict, advancedSettingsUrl) {
|
||||
return function(advancedDict, advancedSettingsUrl) {
|
||||
var advancedModel, editor;
|
||||
|
||||
$('form :input')
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'jquery', 'js/views/settings/grading', 'js/models/settings/course_grading_policy'
|
||||
], function($, GradingView, CourseGradingPolicyModel) {
|
||||
'use strict';
|
||||
return function (courseDetails, gradingUrl) {
|
||||
return function(courseDetails, gradingUrl) {
|
||||
var model, editor;
|
||||
|
||||
$('form :input')
|
||||
@@ -13,11 +13,11 @@ define([
|
||||
$('label').removeClass('is-focused');
|
||||
});
|
||||
|
||||
model = new CourseGradingPolicyModel(courseDetails,{parse:true});
|
||||
model = new CourseGradingPolicyModel(courseDetails, {parse: true});
|
||||
model.urlRoot = gradingUrl;
|
||||
editor = new GradingView({
|
||||
el: $('.settings-grading'),
|
||||
model : model
|
||||
model: model
|
||||
});
|
||||
editor.render();
|
||||
};
|
||||
|
||||
@@ -2,7 +2,7 @@ define([
|
||||
'gettext', 'js/models/section', 'js/collections/textbook', 'js/views/list_textbooks'
|
||||
], function(gettext, Section, TextbookCollection, ListTextbooksView) {
|
||||
'use strict';
|
||||
return function (textbooksJson) {
|
||||
return function(textbooksJson) {
|
||||
var textbooks = new TextbookCollection(textbooksJson, {parse: true}),
|
||||
tbView = new ListTextbooksView({collection: textbooks});
|
||||
|
||||
@@ -12,7 +12,7 @@ define([
|
||||
});
|
||||
$(window).on('beforeunload', function() {
|
||||
var dirty = textbooks.find(function(textbook) { return textbook.isDirty(); });
|
||||
if(dirty) {
|
||||
if (dirty) {
|
||||
return gettext('You have unsaved changes. Do you really want to leave this page?');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
define(
|
||||
["jquery", "backbone", "js/views/active_video_upload_list", "js/views/previous_video_upload_list"],
|
||||
function ($, Backbone, ActiveVideoUploadListView, PreviousVideoUploadListView) {
|
||||
"use strict";
|
||||
['jquery', 'backbone', 'js/views/active_video_upload_list', 'js/views/previous_video_upload_list'],
|
||||
function($, Backbone, ActiveVideoUploadListView, PreviousVideoUploadListView) {
|
||||
'use strict';
|
||||
var VideosIndexFactory = function(
|
||||
$contentWrapper,
|
||||
postUrl,
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
define(["js/views/xblock_validation", "js/models/xblock_validation"],
|
||||
function (XBlockValidationView, XBlockValidationModel) {
|
||||
define(['js/views/xblock_validation', 'js/models/xblock_validation'],
|
||||
function(XBlockValidationView, XBlockValidationModel) {
|
||||
'use strict';
|
||||
return function (validationMessages, hasEditingUrl, isRoot, validationEle) {
|
||||
return function(validationMessages, hasEditingUrl, isRoot, validationEle) {
|
||||
if (hasEditingUrl && !isRoot) {
|
||||
validationMessages.showSummaryOnly = true;
|
||||
}
|
||||
|
||||
var model = new XBlockValidationModel(validationMessages, {parse: true});
|
||||
|
||||
if (!model.get("empty")) {
|
||||
if (!model.get('empty')) {
|
||||
new XBlockValidationView({el: validationEle, model: model, root: isRoot}).render();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
"%(cohort_name)s (%(user_count)s)": "%(cohort_name)s (%(user_count)s)",
|
||||
"%(comments_count)s %(span_sr_open)scomments %(span_close)s": "%(comments_count)s %(span_sr_open)s\u062a\u0639\u0644\u064a\u0642\u0627\u062a %(span_close)s",
|
||||
"%(comments_count)s %(span_sr_open)scomments (%(unread_comments_count)s unread comments)%(span_close)s": "%(comments_count)s %(span_sr_open)s\u062a\u0639\u0644\u064a\u0642\u0627\u062a (%(unread_comments_count)s \u062a\u0639\u0644\u064a\u0642\u0627\u062a \u063a\u064a\u0631 \u0645\u0642\u0631\u0648\u0621\u0629)%(span_close)s",
|
||||
"%(display_name)s Settings": "\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0640 %(display_name)s ",
|
||||
"%(download_link_start)sDownload this image (right-click or option-click, save as)%(link_end)s and then %(upload_link_start)supload%(link_end)s it to your backpack.</li>": "%(download_link_start)s \u062d\u0645\u0644 \u0627\u0644\u0635\u0648\u0631\u0629 (\u0627\u0636\u063a\u0637 \u0632\u0631 \u0627\u0644\u0641\u0623\u0631\u0629 \u0627\u0644\u0623\u064a\u0645\u0646\u060c \u062d\u0641\u0638 \u0628\u0627\u0633\u0645) %(link_end)s \u0648\u0645\u0646 \u062b\u0645 %(upload_link_start)s\u062d\u0645\u0644%(link_end)s \u0625\u0644\u0649 Backpack.</li>",
|
||||
"%(errorCount)s error found in form.": [
|
||||
"\u0648\u064f\u062c\u0650\u062f\u064e %(errorCount)s \u062e\u0637\u0623 \u0641\u064a \u0627\u0644\u0646\u0645\u0648\u0630\u062c.",
|
||||
@@ -44,7 +43,7 @@
|
||||
"\u0648\u064f\u062c\u0650\u062f\u064e\u062a %(errorCount)s \u0623\u062e\u0637\u0627\u0621 \u0641\u064a \u0627\u0644\u0646\u0645\u0648\u0630\u062c."
|
||||
],
|
||||
"%(field)s can only contain up to %(count)d characters.": "\u064a\u062c\u0628 \u0623\u0644\u0627 \u064a\u062a\u062c\u0627\u0648\u0632 \u0639\u062f\u062f \u0623\u062d\u0631\u0641 \u0627\u0644\u062d\u0642\u0648\u0644 %(field)s \u0627\u0644\u0640 %(count)d \u062d\u0631\u0641\u064b\u0627.",
|
||||
"%(field)s must have at least %(count)d characters.": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u0648\u064a \u0627\u0644\u062d\u0642\u0648\u0644 %(field)s \u0639\u0644\u0649 %(count)d \u062d\u0631\u0641\u064b\u0627 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644",
|
||||
"%(field)s must have at least %(count)d characters.": "\u064a\u062c\u0628 \u0639\u0644\u0649 \u062d\u0642\u0644 %(field)s \u0623\u0646 \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 %(count)d \u062d\u0631\u0648\u0641 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644.",
|
||||
"%(memberCount)s / %(maxMemberCount)s Member": [
|
||||
"%(memberCount)s / %(maxMemberCount)s \u0639\u0636\u0648",
|
||||
"%(memberCount)s / %(maxMemberCount)s \u0639\u0636\u0648",
|
||||
@@ -223,6 +222,7 @@
|
||||
"A driver's license, passport, or other government-issued ID with your name and photo": "\u0631\u062e\u0635\u0629 \u0627\u0644\u0642\u064a\u0627\u062f\u0629\u060c \u0623\u0648 \u062c\u0648\u0627\u0632 \u0627\u0644\u0633\u0641\u0631\u060c \u0623\u0648 \u0628\u0637\u0627\u0642\u0629 \u0634\u062e\u0635\u064a\u0629 \u0635\u0627\u062f\u0631\u0629 \u0639\u0646 \u0627\u0644\u062d\u0643\u0648\u0645\u0629\u060c \u0628\u062d\u064a\u062b \u062a\u062d\u0645\u0644 \u0623\u064a \u0648\u0627\u062d\u062f\u0629 \u0645\u0646 \u0647\u0630\u0647 \u0627\u0644\u0648\u062b\u0627\u0626\u0642 \u0627\u0633\u0645\u0643 \u0648\u0635\u0648\u0631\u062a\u0643 ",
|
||||
"A list of courses you have just enrolled in as a verified student": "\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0645\u0633\u0627\u0642\u0627\u062a \u0627\u0644\u062a\u064a \u0633\u062c\u0651\u0644\u062a \u0641\u064a\u0647\u0627 \u0644\u062a\u0648\u0651\u0643 \u0643\u0637\u0627\u0644\u0628 \u0645\u0648\u062b\u0651\u064e\u0642 ",
|
||||
"A name that identifies your team (maximum 255 characters).": "\u0627\u0633\u0645 \u064a\u0639\u0631\u0651\u0641 \u0628\u0641\u0631\u064a\u0642\u0643 (255 \u062d\u0631\u0641\u064b\u0627 \u0639\u0644\u0649 \u0627\u0644\u0623\u0643\u062b\u0631).",
|
||||
"A short description of the program, including concepts covered and expected outcomes (255 character limit).": "\u0648\u0635\u0641 \u0645\u0648\u062c\u0632 \u0644\u0644\u0628\u0631\u0646\u0627\u0645\u062c\u060c \u0628\u0645\u0627 \u0641\u064a \u0630\u0644\u0643 \u0627\u0644\u0645\u0641\u0627\u0647\u064a\u0645 \u0627\u0644\u0645\u0634\u0645\u0648\u0644\u0629 \u0648\u0627\u0644\u0646\u062a\u0627\u0626\u062c \u0627\u0644\u0645\u062a\u0648\u0642\u0639\u0629 (255 \u0639\u062f\u062f \u0627\u0644\u0623\u062d\u0631\u0641 \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0628\u0647\u0627).",
|
||||
"A short description of the team to help other learners understand the goals or direction of the team (maximum 300 characters).": "\u0648\u0635\u0641 \u0642\u0635\u064a\u0631 \u062d\u0648\u0644 \u0627\u0644\u0641\u0631\u064a\u0642 \u0644\u0645\u0633\u0627\u0639\u062f\u0629 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0627\u0644\u0622\u062e\u0631\u064a\u0646 \u0639\u0644\u0649 \u0641\u0647\u0645 \u0623\u0647\u062f\u0627\u0641\u0647 \u0623\u0648 \u062a\u0648\u062c\u0651\u0647\u0647 (300 \u062d\u0631\u0641\u064b\u0627 \u0639\u0644\u0649 \u0627\u0644\u0623\u0643\u062b\u0631).",
|
||||
"A valid email address is required": "\u064a\u062c\u0628 \u0625\u062f\u062e\u0627\u0644 \u0639\u0646\u0648\u0627\u0646 \u0635\u062d\u064a\u062d \u0644\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.",
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ": "\u0623 \u0628 \u062a \u062b \u062c \u062d \u062e \u062f \u0630 \u0631 \u0632 \u0633 \u0634 \u0635 \u0636 \u0637 \u0638 \u0639 \u063a \u0641 \u0642 \u0643 \u0644 \u0645 \u0646 \u0647\u0640 \u0648 \u064a",
|
||||
@@ -230,7 +230,6 @@
|
||||
"About Me": "\u0646\u0628\u0630\u0629 \u0639\u0646\u0651\u064a",
|
||||
"About You": "\u0646\u0628\u0630\u0629 \u0639\u0646\u0643",
|
||||
"About me": "\u0646\u0628\u0630\u0629 \u0639\u0646\u064a",
|
||||
"Access": "\u0627\u0644\u0648\u0635\u0648\u0644",
|
||||
"Accomplishments": "\u0627\u0644\u0625\u0646\u062c\u0627\u0632\u0627\u062a",
|
||||
"Accomplishments Pagination": "\u062a\u0631\u0642\u064a\u0645 \u0635\u0641\u062d\u0627\u062a \u0627\u0644\u0625\u0646\u062c\u0627\u0632\u0627\u062a",
|
||||
"Account Information": "\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u062d\u0633\u0627\u0628",
|
||||
@@ -256,11 +255,15 @@
|
||||
"Add URLs for additional versions": "\u0625\u0636\u0627\u0641\u0629 \u0631\u0648\u0627\u0628\u0637 \u0644\u0644\u0646\u0633\u062e\u0627\u062a \u0627\u0644\u0625\u0636\u0627\u0641\u064a\u0629",
|
||||
"Add a Chapter": "\u0625\u0636\u0627\u0641\u0629 \u0641\u0635\u0644",
|
||||
"Add a New Cohort": "\u0625\u0636\u0627\u0641\u0629 \u0634\u0639\u0628\u0629 \u062c\u062f\u064a\u062f\u0629",
|
||||
"Add a Post": "\u0623\u0636\u0641 \u0645\u0646\u0634\u0648\u0631\u0627\u064b",
|
||||
"Add a Response": "\u0625\u0636\u0627\u0641\u0629 \u0631\u062f:",
|
||||
"Add a clear and descriptive title to encourage participation.": "\u0623\u0636\u0650\u0641 \u0639\u0646\u0648\u0627\u0646\u064b\u0627 \u0648\u0627\u0636\u062d\u064b\u0627 \u0648\u0645\u0639\u0628\u0651\u0631\u064b\u0627 \u0644\u062a\u0634\u062c\u064a\u0639 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629.",
|
||||
"Add a comment": "\u0625\u0636\u0627\u0641\u0629 \u062a\u0639\u0644\u064a\u0642 ",
|
||||
"Add a learning outcome here": "\u0623\u0636\u0641 \u0646\u062a\u064a\u062c\u0629 \u062a\u0639\u0644\u0645 \u0647\u0646\u0627",
|
||||
"Add a course": "\u0625\u0636\u0627\u0641\u0629 \u062f\u0648\u0631\u0629 \u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Add a learning outcome here": "\u0625\u0636\u0627\u0641\u0629 \u0646\u062a\u064a\u062c\u0629 \u062a\u0639\u0644\u064a\u0645\u064a\u0629 \u0647\u0646\u0627",
|
||||
"Add a response:": "\u0623\u0636\u0641 \u0631\u062f\u0627\u064b:",
|
||||
"Add another group": "\u0625\u0636\u0627\u0641\u0629 \u0645\u062c\u0645\u0648\u0639\u0629 \u0623\u062e\u0631\u0649",
|
||||
"Add another run": "\u0625\u0636\u0627\u0641\u0629 \u0645\u0633\u0627\u0631 \u0622\u062e\u0631",
|
||||
"Add language": "\u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u0644\u063a\u0629",
|
||||
"Add notes about this learner": "\u0623\u0636\u0641 \u0645\u0644\u0627\u062d\u0638\u0627\u062a \u062a\u062e\u0635\u0651 \u0647\u0630\u0627 \u0627\u0644\u0645\u062a\u0639\u0644\u0651\u0645",
|
||||
"Add students to this cohort": "\u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u0637\u0644\u0651\u0627\u0628 \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0634\u0639\u0628\u0629",
|
||||
@@ -275,27 +278,34 @@
|
||||
"Adding the selected course to your cart": "\u062c\u0627\u0631\u064a \u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u0645\u0633\u0627\u0642 \u0627\u0644\u0645\u062e\u062a\u0627\u0631 \u0625\u0644\u0649 \u0639\u0631\u0628\u0629 \u0645\u0634\u062a\u0631\u064a\u0627\u062a\u0643",
|
||||
"Additional Information": "\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0625\u0636\u0627\u0641\u064a\u0629",
|
||||
"Adjust video speed": "\u0636\u0628\u0637 \u0633\u0631\u0639\u0629 \u0627\u0644\u0641\u064a\u062f\u064a\u0648",
|
||||
"Adjust video volume": "\u0636\u0628\u0637 \u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0635\u0648\u062a",
|
||||
"Adjust video volume": "\u0636\u0628\u0637 \u0645\u0633\u062a\u0648\u0649 \u0635\u0648\u062a \u0627\u0644\u0641\u064a\u062f\u064a\u0648",
|
||||
"Admin": "\u0645\u0634\u0631\u0650\u0641",
|
||||
"Advanced": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0645\u062a\u0642\u062f\u0651\u0645\u0629",
|
||||
"After the subsection\\'s due date has passed, learners can no longer access its content. The subsection remains included in grade calculations.": "\u0628\u0639\u062f \u0645\u0631\u0648\u0631 \u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0645\u062d\u062f\u062f \u0644\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a\u060c \u0644\u0645 \u064a\u0639\u062f \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u0648\u0646 \u0642\u0627\u062f\u0631\u064a\u0646 \u0628\u0639\u062f \u0639\u0644\u0649 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0645\u062d\u062a\u0648\u0627\u0647. \u064a\u0638\u0644 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a \u0645\u062f\u0631\u062c\u064b\u0627 \u0641\u064a \u062d\u0633\u0627\u0628\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u0648\u0649.",
|
||||
"After you publish this program, you cannot add or remove course codes or remove course runs.": "\u0628\u0639\u062f \u0646\u0634\u0631 \u0647\u0630\u0627 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c\u060c \u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u0625\u0636\u0627\u0641\u0629 \u0623\u0648 \u0625\u0632\u0627\u0644\u0629 \u0631\u0645\u0648\u0632 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062f\u0631\u0627\u0633\u064a\u0629 \u0623\u0648 \u0625\u0632\u0627\u0644\u0629 \u0645\u0633\u0627\u0631\u0627\u062a \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629.",
|
||||
"Align center": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0625\u0644\u0649 \u0627\u0644\u0645\u0646\u062a\u0635\u0641",
|
||||
"Align left": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0625\u0644\u0649 \u0627\u0644\u064a\u0633\u0627\u0631",
|
||||
"Align right": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0625\u0644\u0649 \u0627\u0644\u064a\u0645\u064a\u0646",
|
||||
"Alignment": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0627\u0644\u0646\u0635",
|
||||
"All Groups": "\u0643\u0627\u0641\u0651\u0629 \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0627\u062a ",
|
||||
"All Rights Reserved": "\u062c\u0645\u064a\u0639 \u0627\u0644\u062d\u0642\u0648\u0642 \u0645\u062d\u0641\u0648\u0638\u0629",
|
||||
"All Time Zones": "\u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0646\u0627\u0637\u0642 \u0627\u0644\u0632\u0645\u0646\u064a\u0629",
|
||||
"All Topics": "\u0643\u0627\u0641\u0651\u0629 \u0627\u0644\u0645\u0648\u0627\u0636\u064a\u0639",
|
||||
"All accounts were created successfully.": "\u0627\u0633\u062a\u064f\u0643\u0645\u0644 \u0625\u0646\u0634\u0627\u0621 \u062c\u0645\u064a\u0639 \u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a \u0628\u0646\u062c\u0627\u062d.",
|
||||
"All chapters must have a name and asset": "\u064a\u062c\u0628 \u0623\u0646 \u064a\u062a\u0648\u0641\u0651\u0631 \u0627\u0633\u0645 \u0648\u0645\u0627\u062f\u0651\u0629 \u0644\u062c\u0645\u064a\u0639 \u0627\u0644\u0641\u0635\u0648\u0644.",
|
||||
"All flags have been removed. To undo, uncheck the box.": "\u0644\u0642\u062f \u0623\u064f\u0632\u064a\u0644\u062a \u062c\u0645\u064a\u0639 \u0627\u0644\u0625\u0628\u0644\u0627\u063a\u0627\u062a. \u0644\u0644\u062a\u0631\u0627\u062c\u0639 \u0639\u0646 \u0647\u0630\u0647 \u0627\u0644\u062e\u0637\u0648\u0629\u060c \u0623\u0632\u0644 \u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0635\u062d \u0627\u0644\u0645\u0648\u062c\u0648\u062f\u0629 \u0641\u064a \u0645\u0631\u0628\u0651\u0639 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631.",
|
||||
"All groups must have a name.": "\u064a\u062c\u0628 \u0623\u0646 \u064a\u062a\u0648\u0641\u0651\u0631 \u0627\u0633\u0645 \u0644\u0643\u0644\u0651 \u0645\u062c\u0645\u0648\u0639\u0629.",
|
||||
"All groups must have a unique name.": "\u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0644\u0643\u0644 \u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0633\u0645 \u062e\u0627\u0635 \u0628\u0647\u0627.",
|
||||
"All learners in the {cohort_name} cohort": "\u0643\u0644 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0641\u064a \u0634\u0639\u0628\u0629 {cohort_name}",
|
||||
"All learners who are enrolled in this course": "\u0643\u0644 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0627\u0644\u0645\u0646\u0636\u0645\u064a\u0646 \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629 .",
|
||||
"All payment options are currently unavailable.": "\u062c\u0645\u064a\u0639 \u062e\u064a\u0627\u0631\u0627\u062a \u0627\u0644\u0633\u062f\u0627\u062f \u063a\u064a\u0631 \u0645\u062a\u0648\u0641\u0651\u0631\u0629 \u062d\u0627\u0644\u064a\u064b\u0627.",
|
||||
"All professional education courses are fee-based, and require payment to complete the enrollment process.": "\u0625\u0646\u0651 \u062c\u0645\u064a\u0639 \u0645\u0633\u0627\u0642\u0627\u062a \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0645\u0647\u0646\u064a \u062a\u0633\u062a\u0644\u0632\u0645 \u0631\u0633\u0645\u0627\u064b \u0648\u062a\u062a\u0637\u0644\u0651\u0628 \u0627\u0644\u062f\u0641\u0639 \u0644\u0627\u0633\u062a\u0643\u0645\u0627\u0644 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u0633\u062c\u064a\u0644.",
|
||||
"All subsections": "\u062c\u0645\u064a\u0639 \u0627\u0644\u0623\u0642\u0633\u0627\u0645 \u0627\u0644\u0641\u0631\u0639\u064a\u0629",
|
||||
"All teams": "\u062c\u0645\u064a\u0639 \u0627\u0644\u0641\u0631\u0642",
|
||||
"All topics": "\u0643\u0627\u0641\u0651\u0629 \u0627\u0644\u0645\u0648\u0627\u0636\u064a\u0639",
|
||||
"All units": "\u062c\u0645\u064a\u0639 \u0627\u0644\u0648\u062d\u062f\u0627\u062a",
|
||||
"All users on the Exception list": "\u0643\u0627\u0641\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0641\u064a \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621",
|
||||
"All users on the Exception list who do not yet have a certificate": "\u0643\u0627\u0641\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0639\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621 \u0644\u064a\u0633 \u0644\u062f\u064a\u0647\u0645 \u0634\u0647\u0627\u062f\u0629 \u0628\u0639\u062f ",
|
||||
"Allow others to copy, distribute, display and perform only verbatim copies of your work, not derivative works based upon it. This option is incompatible with \"Share Alike\".": "\u0627\u0644\u0633\u0645\u0627\u062d \u0644\u0644\u0622\u062e\u0631\u064a\u0646 \u0628\u0646\u064e\u0633\u0652\u062e \u0646\u064f\u0633\u064e\u062e \u062d\u0631\u0641\u064a\u0629 \u0645\u0646 \u0639\u0645\u0644\u0643 - \u0648\u0644\u064a\u0633 \u0623\u064a \u0623\u0639\u0645\u0627\u0644 \u0645\u0642\u062a\u0628\u0633\u0629 \u0639\u0646\u0647 - \u0648\u062a\u0648\u0632\u064a\u0639\u0647\u0627 \u0648\u0639\u0631\u0636\u0647\u0627 \u0648\u062a\u0623\u062f\u064a\u062a\u0647\u0627. \u0648\u0644\u0627 \u064a\u062a\u0648\u0627\u0641\u0642 \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631 \u0645\u0639 \u062e\u064a\u0627\u0631 \"\u0645\u0634\u0627\u0631\u0643\u0629 \u0628\u0627\u0644\u062a\u0633\u0627\u0648\u064a\".",
|
||||
"Allow others to copy, distribute, display and perform your copyrighted work but only if they give credit the way you request. Currently, this option is required.": "\u0627\u0644\u0633\u0645\u0627\u062d \u0644\u0644\u0622\u062e\u0631\u064a\u0646 \u0628\u0646\u0633\u062e \u0639\u0645\u0644\u0643 \u0645\u062d\u0641\u0648\u0638 \u0627\u0644\u062d\u0642\u0648\u0642 \u0648\u062a\u0648\u0632\u064a\u0639\u0647 \u0648\u0639\u0631\u0636\u0647 \u0648\u062a\u0623\u062f\u064a\u062a\u0647 \u0628\u0634\u0631\u0637 \u0646\u0633\u0628 \u0627\u0644\u0639\u0645\u0644 \u0625\u0644\u064a\u0643 \u0628\u0627\u0644\u0634\u0643\u0644 \u0627\u0644\u0630\u064a \u062a\u0637\u0644\u0628\u0647. \u0648\u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631 \u0645\u0637\u0644\u0648\u0628 \u062d\u0627\u0644\u064a\u064b\u0627.",
|
||||
"Allow others to copy, distribute, display and perform your work - and derivative works based upon it - but for noncommercial purposes only.": "\u0627\u0644\u0633\u0645\u0627\u062d \u0644\u0644\u0622\u062e\u0631\u064a\u0646 \u0628\u0646\u0633\u062e \u0639\u0645\u0644\u0643 - \u0648\u0627\u0644\u0623\u0639\u0645\u0627\u0644 \u0627\u0644\u0645\u0642\u062a\u0628\u0633\u0629 \u0627\u0644\u0645\u0628\u0646\u064a\u0629 \u0639\u0644\u064a\u0647 - \u0648\u062a\u0648\u0632\u064a\u0639\u0647 \u0648\u0639\u0631\u0636\u0647 \u0648\u062a\u0623\u062f\u064a\u062a\u0647\u060c \u0644\u0643\u0646 \u0641\u0642\u0637 \u0644\u0644\u0623\u063a\u0631\u0627\u0636 \u063a\u064a\u0631 \u0627\u0644\u062a\u062c\u0627\u0631\u064a\u0629.",
|
||||
@@ -308,6 +318,7 @@
|
||||
"Alternative source": "\u0645\u0635\u062f\u0631 \u0622\u062e\u0631",
|
||||
"Always cohort content-specific discussion topics": "\u062a\u0635\u0646\u064a\u0641 \u0643\u0644 \u0627\u0644\u0646\u0642\u0627\u0634\u0627\u062a \u062d\u0633\u0628 \u0627\u0644\u0634\u0639\u0628",
|
||||
"Amount": "\u0627\u0644\u0643\u0645\u0651\u064a\u0629",
|
||||
"An email has been sent to {userEmail} with a link for you to activate your account.": "\u0623\u064f\u0631\u0633\u0650\u0644 \u0631\u0627\u0628\u0637 \u062a\u0641\u0639\u064a\u0644 \u0627\u0644\u062d\u0633\u0627\u0628 \u0639\u0644\u0649 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a {userEmail}.",
|
||||
"An error has occurred. Check your Internet connection and try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623\u060c \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u062a\u0623\u0643\u0651\u062f \u0645\u0646 \u0627\u062a\u0635\u0627\u0644\u0643 \u0628\u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a \u0648\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0644\u0627\u062d\u0642\u064b\u0627.",
|
||||
"An error has occurred. Make sure that you are connected to the Internet, and then try refreshing the page.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623. \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u062a\u0623\u0643\u0651\u062f \u0645\u0646 \u0623\u0646\u0651 \u062d\u0627\u0633\u0648\u0628\u0643 \u0645\u062a\u0651\u0635\u0644 \u0628\u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a\u060c \u062b\u0645\u0651 \u062d\u0627\u0648\u0644 \u0625\u0639\u0627\u062f\u0629 \u0641\u062a\u062d \u0627\u0644\u0635\u0641\u062d\u0629. ",
|
||||
"An error has occurred. Please try again later.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0644\u0627\u062d\u0642\u064b\u0627.",
|
||||
@@ -333,8 +344,6 @@
|
||||
"Answer hidden": "\u0627\u0644\u0625\u062c\u0627\u0628\u0629 \u0645\u062e\u0641\u064a\u0651\u0629",
|
||||
"Answer:": "\u0627\u0644\u0625\u062c\u0627\u0628\u0629:",
|
||||
"Any content that has listed this content as a prerequisite will also have access limitations removed.": "\u0633\u062a\u064f\u062d\u0630\u0641 \u0623\u064a \u0645\u062d\u062f\u0651\u062f\u0627\u062a \u0644\u0644\u0648\u0635\u0648\u0644 \u0644\u0623\u064a \u0645\u062d\u062a\u0648\u0649 \u0643\u0627\u0646 \u0642\u062f \u0623\u0631\u062f\u062c \u0647\u0630\u0627 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0643\u0645\u062a\u0637\u0644\u0651\u0628 \u0623\u0633\u0627\u0633\u064a.",
|
||||
"Any subsections or units that are explicitly hidden from students will remain hidden after you clear this option for the section.": "\u0633\u062a\u0628\u0642\u0649 \u062c\u0645\u064a\u0639 \u0627\u0644\u0623\u0642\u0633\u0627\u0645 \u0627\u0644\u0641\u0631\u0639\u064a\u0629 \u0623\u0648 \u0627\u0644\u0648\u062d\u062f\u0627\u062a \u0627\u0644\u0645\u062e\u0641\u064a\u0651\u0629 \u0628\u0634\u0643\u0644 \u0635\u0631\u064a\u062d \u0639\u0646 \u0627\u0644\u0637\u0644\u0651\u0627\u0628 \u0645\u062e\u0641\u064a\u0651\u0629\u064b \u0628\u0639\u062f \u0623\u0646 \u062a\u062d\u0630\u0641 \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631 \u0645\u0646 \u0627\u0644\u0642\u0633\u0645.",
|
||||
"Any units that are explicitly hidden from students will remain hidden after you clear this option for the subsection.": "\u0633\u062a\u0628\u0642\u0649 \u062c\u0645\u064a\u0639 \u0627\u0644\u0648\u062d\u062f\u0627\u062a \u0627\u0644\u0645\u062e\u0641\u064a\u0651\u0629 \u0635\u0631\u0627\u062d\u0629\u064b \u0639\u0646 \u0627\u0644\u0637\u0644\u0627\u0628 \u0645\u062e\u0641\u064a\u0651\u0629\u064b \u0628\u0639\u062f \u0623\u0646 \u062a\u062d\u0630\u0641 \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631 \u0645\u0646 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a.",
|
||||
"Are you having trouble finding a team to join?": "\u0639\u0630\u0631\u064b\u0627\u060c \u0647\u0644 \u062a\u0648\u0627\u062c\u0647 \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0625\u064a\u062c\u0627\u062f \u0641\u0631\u064a\u0642 \u0644\u062a\u0646\u0636\u0645 \u0625\u0644\u064a\u0647\u061f",
|
||||
"Are you sure you want to delete this comment?": "\u0647\u0644 \u0623\u0646\u062a \u0648\u0627\u062b\u0642 \u0645\u0646 \u0623\u0646\u0651\u0643 \u062a\u0648\u062f\u0651 \u062d\u0630\u0641 \u0647\u0630\u0627 \u0627\u0644\u062a\u0639\u0644\u064a\u0642\u061f",
|
||||
"Are you sure you want to delete this page? This action cannot be undone.": "\u0647\u0644 \u0623\u0646\u062a \u0648\u0627\u062b\u0642 \u0645\u0646 \u0623\u0646\u0651\u0643 \u062a\u0631\u064a\u062f \u062d\u0630\u0641 \u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629\u061f \u0644\u0627 \u064a\u0645\u0643\u0646 \u0627\u0644\u062a\u0631\u0627\u062c\u0639 \u0639\u0646 \u0647\u0630\u0647 \u0627\u0644\u0639\u0645\u0644\u064a\u0629 \u0644\u0627\u062d\u0642\u064b\u0627.",
|
||||
@@ -383,7 +392,6 @@
|
||||
"Bulk Exceptions": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0645\u0646 \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621\u0627\u062a",
|
||||
"Bullet list": "\u0642\u0627\u0626\u0645\u0629 \u062a\u0639\u062f\u0627\u062f \u0646\u0642\u0637\u064a",
|
||||
"Bulleted List (Ctrl+U)": "\u0642\u0627\u0626\u0645\u0629 \u0645\u0646\u0642\u0651\u0637\u0629 (Ctrl+U)",
|
||||
"By default, submitted exams are available for review after the due date has passed. Select this option to keep exams hidden after that date.": "\u0641\u064a \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u060c \u062a\u062a\u0627\u062d \u0627\u0644\u0627\u0645\u062a\u062d\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0642\u062f\u0645\u0629 \u0644\u0644\u0645\u0631\u0627\u062c\u0639\u0629 \u0628\u0639\u062f \u0645\u0631\u0648\u0631 \u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0645\u062d\u062f\u062f\u202c. \u062d\u062f\u062f \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631 \u0644\u0644\u0625\u0628\u0642\u0627\u0621 \u0639\u0644\u0649 \u0627\u0644\u0627\u0645\u062a\u062d\u0627\u0646\u0627\u062a \u0645\u062e\u0641\u064a\u0629 \u0628\u0639\u062f \u0630\u0644\u0643 \u0627\u0644\u062a\u0627\u0631\u064a\u062e.",
|
||||
"By: Community TA": "\u0628\u0648\u0627\u0633\u0637\u0629: \u0645\u0633\u0627\u0639\u062f \u0623\u0633\u062a\u0627\u0630 \u0644\u0634\u0624\u0648\u0646 \u0627\u0644\u0645\u062a\u0639\u0644\u0651\u0645\u064a\u0646",
|
||||
"By: Staff": "\u0628\u0648\u0627\u0633\u0637\u0629: \u0637\u0627\u0642\u0645 \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"Can we match the photo you took with the one on your ID?": "\u0647\u0644 \u064a\u0645\u0643\u0646\u0646\u0627 \u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0644\u0635\u0648\u0631\u0629 \u0627\u0644\u062a\u064a \u0627\u0644\u062a\u0642\u0637\u062a\u0647\u0627 \u0645\u0639 \u0635\u0648\u0631\u062a\u0643 \u0627\u0644\u0645\u0648\u062c\u0648\u062f\u0629 \u0639\u0644\u0649 \u0628\u0637\u0627\u0642\u062a\u0643 \u0627\u0644\u0634\u062e\u0635\u064a\u0629\u061f ",
|
||||
@@ -415,7 +423,7 @@
|
||||
"Change Manually": "\u0627\u0644\u062a\u063a\u064a\u064a\u0631 \u064a\u062f\u0648\u064a\u0651\u064b\u0627 ",
|
||||
"Change My Email Address": "\u062a\u063a\u064a\u064a\u0631 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u064a \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a",
|
||||
"Change image": "\u062a\u063a\u064a\u064a\u0631 \u0627\u0644\u0635\u0648\u0631\u0629",
|
||||
"Change the settings for %(display_name)s": "\u062a\u063a\u064a\u064a\u0631 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0640 %(display_name)s ",
|
||||
"Change the settings for {display_name}": "\u062a\u063a\u064a\u064a\u0631 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0644\u0640 {display_name}",
|
||||
"Chapter Asset": "\u0645\u0627\u062f\u0629 \u0645\u0644\u062d\u0642\u0629 \u0628\u0641\u0635\u0644",
|
||||
"Chapter Name": "\u0627\u0633\u0645 \u0627\u0644\u0641\u0635\u0644",
|
||||
"Chapter information": "\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0639\u0646 \u0627\u0644\u0641\u0635\u0644",
|
||||
@@ -446,6 +454,7 @@
|
||||
"Checkout": "\u0627\u0644\u062f\u0641\u0639",
|
||||
"Checkout with PayPal": "\u0627\u0644\u062f\u0641\u0639 \u0628\u0648\u0627\u0633\u0637\u0629 PayPal",
|
||||
"Checkout with {processor}": "\u0627\u0644\u062f\u0641\u0639 \u0628\u0648\u0627\u0633\u0637\u0629 {processor}",
|
||||
"Choose Course Date": "\u0627\u062e\u062a\u0631 \u062a\u0627\u0631\u064a\u062e \u0644\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Choose File": "\u0627\u062e\u062a\u0631 \u0627\u0644\u0645\u0644\u0641",
|
||||
"Choose One": "\u0627\u062e\u062a\u0631 \u0648\u0627\u062d\u062f\u064b\u0627",
|
||||
"Choose a .csv file": "\u064a\u064f\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0645\u0644\u0641 \u0645\u0646 \u0646\u0648\u0639 .csv. ",
|
||||
@@ -492,6 +501,7 @@
|
||||
"Cols": "\u0627\u0644\u0623\u0639\u0645\u062f\u0629",
|
||||
"Column": "\u0639\u0645\u0648\u062f",
|
||||
"Column group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0623\u0639\u0645\u062f\u0629",
|
||||
"Coming Soon": "\u0642\u0631\u064a\u0628\u0627\u064b",
|
||||
"Commentary": "\u0627\u0644\u062a\u0639\u0644\u064a\u0642",
|
||||
"Common Problem Types": "\u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u0633\u0627\u0626\u0644 \u0627\u0644\u0634\u0627\u0626\u0639\u0629",
|
||||
"Community TA": "\u0645\u0633\u0627\u0639\u062f \u0623\u0633\u062a\u0627\u0630 \u0644\u0634\u0624\u0648\u0646 \u0627\u0644\u0645\u062a\u0639\u0644\u0651\u0645\u064a\u0646",
|
||||
@@ -500,6 +510,7 @@
|
||||
"Confirm": "\u062a\u0623\u0643\u064a\u062f",
|
||||
"Confirm Timed Transcript": "\u0623\u0643\u0651\u062f \u0627\u0644\u0646\u0635 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a",
|
||||
"Congratulations! You are now verified on %(platformName)s!": "\u062a\u0647\u0627\u0646\u064a\u0646\u0627! \u0647\u0648\u064a\u0651\u062a\u0643 \u0645\u0648\u062b\u0651\u0642\u0629 \u0627\u0644\u0622\u0646 \u0639\u0644\u0649 %(platformName)s!",
|
||||
"Congratulations! You have earned a certificate for this course.": "\u062a\u0647\u0627\u0646\u064a\u0646\u0627\u060c \u0644\u0642\u062f \u062d\u0635\u0644\u062a \u0639\u0644\u0649 \u0634\u0647\u0627\u062f\u0629 \u0625\u062a\u0645\u0627\u0645 \u0647\u0630\u0647 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629!",
|
||||
"Constrain proportions": "\u062a\u0642\u064a\u064a\u062f \u0627\u0644\u0646\u0633\u0628",
|
||||
"Contains staff only content": "\u062a\u062d\u0648\u064a \u0645\u062d\u062a\u0648\u0649\u064b \u062e\u0627\u0635 \u0628\u0637\u0627\u0642\u0645 \u0627\u0644\u0645\u0633\u0627\u0642 \u0641\u0642\u0637.",
|
||||
"Contains {count} group": [
|
||||
@@ -519,7 +530,7 @@
|
||||
"Correct failed component": "\u064a\u064f\u0631\u062c\u0649 \u062a\u0635\u062d\u064a\u062d \u0627\u0644\u0645\u0643\u0648\u0651\u0650\u0646 \u0627\u0644\u0630\u064a \u062a\u0639\u0630\u0651\u0631 \u062a\u0635\u062f\u064a\u0631\u0647. ",
|
||||
"Could not find Certificate Exception in white list. Please refresh the page and try again": "\u062a\u0639\u0630\u0651\u0631 \u0625\u064a\u062c\u0627\u062f \u062e\u064a\u0627\u0631 \u0627\u0633\u062a\u062b\u0646\u0627\u0621 \u0627\u0644\u0634\u0647\u0627\u062f\u0629 \u0636\u0645\u0646 \u0627\u0644\u0644\u0627\u0626\u062d\u0629 \u0627\u0644\u0628\u064a\u0636\u0627\u0621. \u064a\u064f\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0635\u0641\u062d\u0629 \u0648\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0646 \u062c\u062f\u064a\u062f.",
|
||||
"Could not find Certificate Invalidation in the list. Please refresh the page and try again": "\u062a\u0639\u0630\u0651\u0631 \u0625\u064a\u062c\u0627\u062f \u062e\u064a\u0627\u0631 \u0625\u0644\u063a\u0627\u0621 \u062a\u0648\u062b\u064a\u0642 \u0627\u0644\u0634\u0647\u0627\u062f\u0629 \u0636\u0645\u0646 \u0627\u0644\u0644\u0627\u0626\u062d\u0629. \u064a\u064f\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0635\u0641\u062d\u0629 \u0648\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0646 \u062c\u062f\u064a\u062f.",
|
||||
"Could not find a user with username or email address '<%= identifier %>'.": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0645 \u0646\u0633\u062a\u0637\u0639 \u0625\u064a\u062c\u0627\u062f \u0645\u0633\u062a\u062e\u062f\u0645 \u0628\u0627\u0644\u0627\u0633\u0645 \u0627\u0648 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u2019<%= identifier %>\u2018. ",
|
||||
"Could not find a user with username or email address '<%- identifier %>'.": "\u0644\u0645 \u064a\u064f\u0639\u062b\u0631 \u0639\u0644\u0649 \u0645\u0633\u062a\u062e\u062f\u0645 \u064a\u062d\u0645\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0623\u0648 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0647\u0630\u0627 '<%- identifier %>'.",
|
||||
"Could not find the specified string.": " \u062a\u0639\u0630\u0651\u0631 \u0625\u064a\u062c\u0627\u062f \u0627\u0644\u0633\u0644\u0633\u0644\u0629 \u0627\u0644\u0645\u062d\u062f\u0651\u062f\u0629. ",
|
||||
"Could not find users associated with the following identifiers:": "\u0646\u0623\u0633\u0641 \u0644\u062a\u0639\u0630\u0651\u0631 \u0625\u064a\u062c\u0627\u062f \u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u064a\u062d\u0645\u0644\u0648\u0646 \u0627\u0644\u0623\u0631\u0642\u0627\u0645 \u0627\u0644\u062a\u0627\u0644\u064a\u0629:",
|
||||
"Could not parse certificate JSON. %(message)s": "\u062a\u0639\u0630\u0651\u0631 \u062a\u0641\u0633\u064a\u0631 JSON \u0627\u0644\u0634\u0647\u0627\u062f\u0629. %(message)s",
|
||||
@@ -530,6 +541,7 @@
|
||||
"Country of residence": "\u0628\u0644\u062f \u0627\u0644\u0625\u0642\u0627\u0645\u0629",
|
||||
"Country or Region": "\u0627\u0644\u062f\u0648\u0644\u0629 \u0623\u0648 \u0627\u0644\u0645\u0646\u0637\u0642\u0629",
|
||||
"Course": "\u0627\u0644\u0645\u0633\u0627\u0642 ",
|
||||
"Course Code": "\u0631\u0645\u0632 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Course Credit Requirements": "\u0645\u062a\u0637\u0644\u0651\u0628\u0627\u062a \u0645\u0648\u0627\u062f \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"Course End": "\u062a\u0627\u0631\u064a\u062e \u0627\u0646\u062a\u0647\u0627\u0621 \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"Course Handouts": "\u0646\u0634\u0631\u0627\u062a \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
@@ -542,12 +554,14 @@
|
||||
"Course Start": "\u062a\u0627\u0631\u064a\u062e \u0627\u0628\u062a\u062f\u0627\u0621 \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"Course Title": "\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"Course Title Override": "\u062a\u062c\u0627\u0648\u0632 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"Course is not yet visible to students.": "\u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642 \u063a\u064a\u0631 \u0645\u0631\u0626\u064a \u0644\u0644\u0637\u0644\u0627\u0628.",
|
||||
"Course pacing cannot be changed once a course has started.": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u062a\u063a\u064a\u064a\u0631 \u062a\u0646\u0638\u064a\u0645 \u0627\u0644\u0645\u0633\u0627\u0642 \u0628\u0645\u062c\u0631\u0651\u062f \u0627\u0628\u062a\u062f\u0627\u0626\u0647.",
|
||||
"Course title": "\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"Course-Wide Discussion Topics": "\u0645\u0648\u0627\u0636\u064a\u0639 \u0646\u0642\u0627\u0634 \u0639\u0644\u0649 \u0646\u0637\u0627\u0642 \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"Create": "\u0625\u0646\u0634\u0627\u0621 ",
|
||||
"Create Re-run": "\u062e\u0644\u0642 \u0648\u062d\u062f\u0629 \u0645\u064f\u0639\u0627\u062f \u062a\u0646\u0641\u064a\u0630\u0647\u0627",
|
||||
"Create a %(link_start)sMozilla Backpack%(link_end)s account, or log in to your existing account": "\u0623\u0646\u0634\u0626 \u062d\u0633\u0627\u0628 %(link_start)s Mozilla Backpack %(link_end)s\u060c \u0623\u0648 \u0633\u062c\u0644 \u062f\u062e\u0648\u0644\u0643 \u0625\u0644\u0649 \u062d\u0633\u0627\u0628\u0643 \u0627\u0644\u0645\u0648\u062c\u0648\u062f",
|
||||
"Create a New Program": "\u0625\u0646\u0634\u0627\u0621 \u0628\u0631\u0646\u0627\u0645\u062c \u062c\u062f\u064a\u062f",
|
||||
"Create a New Team": "\u0625\u0646\u0634\u0627\u0621 \u0641\u0631\u064a\u0642 \u062c\u062f\u064a\u062f",
|
||||
"Create a content group": "\u0625\u0646\u0634\u0627\u0621 \u0645\u062c\u0645\u0648\u0639\u0629 \u0645\u062d\u062a\u0648\u0649",
|
||||
"Create a new account": "\u0623\u0646\u0634\u0626 \u062d\u0633\u0627\u0628\u0627\u064b \u062c\u062f\u064a\u062f\u0627\u064b",
|
||||
@@ -569,6 +583,7 @@
|
||||
"Custom...": "\u0645\u062e\u0635\u0651\u0635...",
|
||||
"Cut": "\u0642\u0635\u0651",
|
||||
"Cut row": "\u0642\u0635\u0651 \u0627\u0644\u0635\u0641",
|
||||
"Dashboard": "\u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a",
|
||||
"Date": "\u0627\u0644\u062a\u0627\u0631\u064a\u062e ",
|
||||
"Date Added": "\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0625\u0636\u0627\u0641\u0629 ",
|
||||
"Date added": "\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0625\u0636\u0627\u0641\u0629 ",
|
||||
@@ -583,6 +598,8 @@
|
||||
"Delete Page Confirmation": "\u062a\u0623\u0643\u064a\u062f \u062d\u0630\u0641 \u0627\u0644\u0635\u0641\u062d\u0629",
|
||||
"Delete Team": "\u062d\u0630\u0641 \u0627\u0644\u0641\u0631\u064a\u0642",
|
||||
"Delete column": "\u062d\u0630\u0641 \u0627\u0644\u0639\u0645\u0648\u062f",
|
||||
"Delete course": "\u062d\u0630\u0641 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Delete course run": "\u062d\u0630\u0641 \u0645\u0633\u0627\u0631 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Delete row": "\u062d\u0630\u0641 \u0627\u0644\u0635\u0641",
|
||||
"Delete student '<%= student_id %>'s state on problem '<%= problem_id %>'?": "\u062d\u0630\u0641 \u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0627\u0644\u0628 \u0635\u0627\u062d\u0628 \u0627\u0644\u0631\u0642\u0645 \u2019<%= student_id %>\u2018 \u0628\u0627\u0644\u0646\u0633\u0628\u0629 \u0644\u0644\u0645\u0633\u0623\u0644\u0629 \u0631\u0642\u0645 \u2019<%= problem_id %>\u2018\u061f",
|
||||
"Delete table": "\u062d\u0630\u0641 \u0627\u0644\u062c\u062f\u0648\u0644",
|
||||
@@ -607,6 +624,7 @@
|
||||
"Discard Changes": "\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a",
|
||||
"Discarding Changes": "\u062c\u0627\u0631\u064a \u0625\u0644\u063a\u0627\u0621 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a",
|
||||
"Discussion": "\u0627\u0644\u0645\u0646\u0627\u0642\u0634\u0629",
|
||||
"Discussion Home": "\u0627\u0644\u0635\u0641\u062d\u0629 \u0627\u0644\u0631\u0626\u064a\u0633\u064a\u0629 \u0644\u0644\u0646\u0642\u0627\u0634",
|
||||
"Discussion admins, moderators, and TAs can make their posts visible to all students or specify a single cohort.": "\u064a\u0645\u0643\u0646 \u0644\u0645\u0634\u0631\u0641\u064a \u0627\u0644\u0646\u0642\u0627\u0634\u0627\u062a \u0648\u0645\u0634\u0631\u0641\u064a \u0627\u0644\u0645\u0646\u062a\u062f\u0649 \u0648\u0645\u0633\u0627\u0639\u062f\u064a \u0627\u0644\u0623\u0633\u0627\u062a\u0630\u0629 \u0623\u0646 \u064a\u062c\u0639\u0644\u0648\u0627 \u0645\u0646\u0634\u0648\u0631\u0627\u062a\u0647\u0645 \u0645\u0631\u0626\u064a\u0651\u0629 \u0644\u062c\u0645\u064a\u0639 \u0627\u0644\u0637\u0644\u0627\u0628 \u0623\u0648 \u0644\u0634\u0639\u0628 \u0645\u0639\u064a\u0651\u0646\u0629 \u064a\u062d\u062f\u0651\u062f\u0648\u0647\u0627.",
|
||||
"Discussion topics; currently listing: ": "\u0645\u0648\u0627\u0636\u064a\u0639 \u0627\u0644\u0646\u0642\u0627\u0634\u060c \u0627\u0644\u0645\u0648\u0627\u0636\u064a\u0639 \u0627\u0644\u0645\u064f\u062f\u0631\u062c\u0629 \u0639\u0644\u0649 \u0627\u0644\u0644\u0627\u0626\u062d\u0629 \u062d\u0627\u0644\u064a\u064b\u0627: ",
|
||||
"Display Name": "\u0627\u0633\u0645 \u0627\u0644\u0639\u0631\u0636",
|
||||
@@ -653,6 +671,12 @@
|
||||
"Edit Your Name": "\u062a\u0639\u062f\u064a\u0644 \u0627\u0633\u0645\u0643 ",
|
||||
"Edit post title": "\u062a\u0639\u062f\u064a\u0644 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0646\u0634\u0648\u0631 ",
|
||||
"Edit the name": "\u062a\u0639\u062f\u064a\u0644 \u0627\u0644\u0627\u0633\u0645",
|
||||
"Edit the program marketing slug": "\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0634\u0627\u0631\u0629 \u0627\u0644\u062a\u0633\u0648\u064a\u0642\u064a\u0629 \u0644\u0644\u0628\u0631\u0646\u0627\u0645\u062c",
|
||||
"Edit the program subtitle": "\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0641\u0631\u0639\u064a \u0644\u0644\u0628\u0631\u0646\u0627\u0645\u062c.",
|
||||
"Edit the program title": "\u062a\u062d\u0631\u064a\u0631 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c",
|
||||
"Edit the program\\'s marketing slug.": "\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0634\u0627\u0631\u0629 \u0627\u0644\u062a\u0633\u0648\u064a\u0642\u064a\u0629 \u0644\u0644\u0628\u0631\u0646\u0627\u0645\u062c.",
|
||||
"Edit the program\\'s name.": "\u062a\u062d\u0631\u0631 \u0627\u0633\u0645 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c.",
|
||||
"Edit the program\\'s subtitle.": "\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0641\u0631\u0639\u064a \u0644\u0644\u0628\u0631\u0646\u0627\u0645\u062c.",
|
||||
"Edit this certificate?": "\u0647\u0644 \u062a\u0631\u064a\u062f \u062a\u0639\u062f\u064a\u0644 \u0627\u0644\u0634\u0647\u0627\u062f\u0629\u061f",
|
||||
"Editable": "\u0642\u0627\u0628\u0644 \u0644\u0644\u062a\u0639\u062f\u064a\u0644",
|
||||
"Editing comment": "\u062a\u0639\u062f\u064a\u0644 \u0627\u0644\u062a\u0639\u0644\u064a\u0642",
|
||||
@@ -675,9 +699,11 @@
|
||||
"End of transcript. Skip to the start.": "\u0646\u0647\u0627\u064a\u0629 \u0627\u0644\u0646\u0635. \u062a\u062e\u0637 \u0625\u0644\u0649 \u0627\u0644\u0628\u062f\u0627\u064a\u0629.",
|
||||
"Endorse": "\u062a\u0623\u064a\u064a\u062f",
|
||||
"Engage with posts": "\u0634\u0627\u0631\u0643 \u0641\u064a \u0627\u0644\u0645\u0646\u0634\u0648\u0631\u0627\u062a",
|
||||
"Enroll Now": "\u0633\u062c\u0644 \u0627\u0644\u0622\u0646",
|
||||
"Enrolling you in the selected course": "\u062c\u0627\u0631\u064a \u062a\u0633\u062c\u064a\u0644\u0643 \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0642 \u0627\u0644\u0645\u062e\u062a\u0627\u0631",
|
||||
"Enrollment Date": "\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u062a\u0633\u062c\u064a\u0644 ",
|
||||
"Enrollment Mode": "\u0648\u0636\u0639 \u0627\u0644\u062a\u0633\u062c\u064a\u0644",
|
||||
"Enrollment Opens on": "\u064a\u064f\u0641\u062a\u062d \u0628\u0627\u0628 \u0627\u0644\u0627\u0646\u0636\u0645\u0627\u0645 \u0641\u064a",
|
||||
"Ensure that you can see your photo and read your name": "\u062a\u0623\u0643\u0651\u062f \u0645\u0646 \u0623\u0646\u0651\u0647 \u064a\u0645\u0643\u0646\u0643 \u0623\u0646 \u062a\u0631\u0649 \u0635\u0648\u0631\u062a\u0643 \u0648\u062a\u0642\u0631\u0623 \u0627\u0633\u0645\u0643 ",
|
||||
"Enter Due Date and Time": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u062a\u0627\u0631\u064a\u062e \u0648\u062a\u0648\u0642\u064a\u062a \u0627\u0644\u0627\u0633\u062a\u062d\u0642\u0627\u0642.",
|
||||
"Enter Start Date and Time": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u062a\u0627\u0631\u064a\u062e \u0648\u062a\u0648\u0642\u064a\u062a \u0627\u0644\u0628\u062f\u0621",
|
||||
@@ -735,12 +761,11 @@
|
||||
"Error: Import failed.": "\u062e\u0637\u0623: \u0641\u0634\u0644 \u0627\u0644\u0627\u0633\u062a\u064a\u0631\u0627\u062f.",
|
||||
"Error: Replacing failed.": "\u062e\u0637\u0623: \u0641\u0634\u0644 \u0627\u0644\u0627\u0633\u062a\u0628\u062f\u0627\u0644.",
|
||||
"Error: Uploading failed.": "\u062e\u0637\u0623: \u0641\u0634\u0644 \u0627\u0644\u062a\u062d\u0645\u064a\u0644.",
|
||||
"Error: User '<%= username %>' has not yet activated their account. Users must create and activate their accounts before they can be assigned a role.": "\u062e\u0637\u0623: \u0644\u0645 \u064a\u0641\u0639\u0651\u0650\u0644 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u2019<%= username %>\u2018 \u062d\u0633\u0627\u0628\u0647 \u0628\u0639\u062f. \u0648\u064a\u062c\u0628 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0623\u0646 \u064a\u0646\u0634\u0626\u0648\u0627 \u062d\u0633\u0627\u0628\u0627\u062a\u0647\u0645 \u0648\u064a\u0641\u0639\u0651\u0644\u0648\u0647\u0627 \u0642\u0628\u0644 \u0623\u0646 \u062a\u064f\u062a\u0627\u062d \u0644\u0647\u0645 \u0625\u0645\u0643\u0627\u0646\u064a\u0629 \u0625\u0633\u0646\u0627\u062f \u0627\u0644\u0623\u062f\u0648\u0627\u0631 \u0625\u0644\u064a\u0647\u0645. ",
|
||||
"Error: User '<%- username %>' has not yet activated their account. Users must create and activate their accounts before they can be assigned a role.": "\u062e\u0637\u0623: '<%- username %>' \u0644\u0645 \u064a\u0641\u0639\u0644 \u062d\u0633\u0627\u0628\u0647 \u0628\u0639\u062f. \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0625\u0646\u0634\u0627\u0621 \u0648\u062a\u0641\u0639\u064a\u0644 \u062d\u0633\u0627\u0628\u0627\u062a\u0647\u0645 \u0642\u0628\u0644 \u0623\u0646 \u064a\u064f\u0633\u0646\u062f \u0625\u0644\u064a\u0647\u0645 \u0623\u064a \u062f\u0648\u0631 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629.",
|
||||
"Error: You cannot remove yourself from the Instructor group!": "\u062e\u0637\u0623: \u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u062d\u0630\u0641 \u0646\u0641\u0633\u0643 \u0645\u0646 \u0645\u062c\u0645\u0648\u0639\u0629 \u0623\u0633\u062a\u0627\u0630 \u0627\u0644\u0645\u0633\u0627\u0642!",
|
||||
"Errors": "\u0623\u062e\u0637\u0627\u0621",
|
||||
"Everyone who has staff privileges in this course": "\u0643\u0644 \u0641\u0631\u062f \u0644\u062f\u064a\u0647 \u0645\u0632\u0627\u064a\u0627 \u0627\u0644\u0645\u0648\u0638\u0641\u064a\u0646 \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Exam Types": "\u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631",
|
||||
"Exam will be visible after due date": "\u0633\u064a\u0643\u0648\u0646 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631 \u0638\u0627\u0647\u0631\u0627\u064b \u0628\u0639\u062f \u0627\u0646\u062a\u0647\u0627\u0621 \u0648\u0642\u062a \u0627\u0644\u0627\u0633\u062a\u062d\u0642\u0627\u0642",
|
||||
"Exam will remain hidden after due date": "\u0633\u064a\u0638\u0644 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631 \u0645\u062e\u0641\u064a\u0627\u064b \u0628\u0639\u062f \u0627\u0646\u062a\u0647\u0627\u0621 \u0648\u0642\u062a \u0627\u0644\u0627\u0633\u062a\u062d\u0642\u0627\u0642",
|
||||
"Exception Granted": "\u062c\u0631\u0649 \u0627\u0639\u062a\u0645\u0627\u062f \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621",
|
||||
"Exit full browser": "\u0627\u0644\u062e\u0631\u0648\u062c \u0645\u0646 \u0627\u0644\u0645\u062a\u0635\u0641\u0651\u062d \u0627\u0644\u0643\u0627\u0645\u0644",
|
||||
"Expand All": "\u062a\u0643\u0628\u064a\u0631 \u062c\u0645\u064a\u0639 \u0627\u0644\u0623\u0642\u0633\u0627\u0645",
|
||||
@@ -749,8 +774,8 @@
|
||||
"Explain if other.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u0628\u064a\u0627\u0646 \u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644 \u0641\u064a \u062d\u0627\u0644 \u0627\u062e\u062a\u064a\u0627\u0631 \u2019\u0623\u0633\u0628\u0627\u0628 \u0623\u062e\u0631\u0649\u2018",
|
||||
"Explanation": "\u0627\u0644\u0625\u064a\u0636\u0627\u062d",
|
||||
"Explicitly Hiding from Students": "\u0625\u062e\u0641\u0627\u0621 \u0648\u0627\u0636\u062d \u0639\u0646 \u0627\u0644\u0637\u0644\u0651\u0627\u0628",
|
||||
"Explore New XSeries": "\u0627\u0633\u062a\u0643\u0634\u0641 \u062c\u062f\u064a\u062f XSeries",
|
||||
"Explore XSeries Programs": "\u0627\u0633\u062a\u0643\u0634\u0641 \u0628\u0631\u0627\u0645\u062c XSeries",
|
||||
"Explore New Programs": "\u0627\u0633\u062a\u0643\u0634\u0627\u0641 \u0628\u0631\u0627\u0645\u062c \u062c\u062f\u064a\u062f\u0629",
|
||||
"Explore Programs": "\u0627\u0633\u062a\u0643\u0634\u0627\u0641 \u0628\u0631\u0627\u0645\u062c",
|
||||
"Explore your course!": "\u0627\u0633\u062a\u0643\u0634\u0641 \u0645\u0633\u0627\u0642\u0643!",
|
||||
"Failed to delete student state.": "\u0646\u0623\u0633\u0641 \u0644\u062a\u0639\u0630\u0651\u0631 \u0625\u062c\u0631\u0627\u0621 \u0639\u0645\u0644\u064a\u0629 \u062d\u0630\u0641 \u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0627\u0644\u0628.",
|
||||
"Failed to rescore problem.": "\u0646\u0623\u0633\u0641 \u0644\u062a\u0639\u0630\u0651\u0631 \u0625\u062c\u0631\u0627\u0621 \u0639\u0645\u0644\u064a\u0629 \u0625\u0639\u0627\u062f\u0629 \u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u0645\u0633\u0623\u0644\u0629.",
|
||||
@@ -780,19 +805,19 @@
|
||||
"Font Sizes": "\u0623\u062d\u062c\u0627\u0645 \u0627\u0644\u062e\u0637",
|
||||
"Footer": "\u0630\u064a\u0644 \u0627\u0644\u0635\u0641\u062d\u0629",
|
||||
"For grading to work, you must change all {oldName} subsections to {newName}.": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u0642\u0648\u0645 \u0628\u062a\u063a\u064a\u064a\u0631 \u0643\u0644 \u0627\u0644\u0623\u0642\u0633\u0627\u0645 \u0627\u0644\u0641\u0631\u0639\u064a\u0629 \u0641\u064a {oldName} \u0625\u0644\u0649 {newName} \u0643\u064a \u064a\u0639\u0645\u0644 \u0646\u0638\u0627\u0645 \u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062a.",
|
||||
"Forgot password?": "\u0647\u0644 \u0646\u0633\u064a\u062a \u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631\u061f",
|
||||
"Forgot password?": "\u0647\u0644 \u0646\u0633\u064a\u062a \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\u061f",
|
||||
"Format": "\u0627\u0644\u062a\u0646\u0633\u064a\u0642",
|
||||
"Formats": "\u0627\u0644\u062a\u0646\u0633\u064a\u0642\u0627\u062a",
|
||||
"Free text notes": "\u0645\u0644\u0627\u062d\u0638\u0627\u062a \u0645\u0643\u062a\u0648\u0628\u0629 \u062d\u0631\u0629",
|
||||
"Frequently Asked Questions": "\u0627\u0644\u0623\u0633\u0626\u0644\u0629 \u0627\u0644\u0634\u0627\u0626\u0639\u0629",
|
||||
"Full Name": "\u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0643\u0627\u0645\u0644",
|
||||
"Full Profile": "\u0643\u0627\u0645\u0644 \u0645\u0644\u0641\u0651\u064a \u0627\u0644\u0634\u062e\u0635\u064a",
|
||||
"Fullscreen": "\u0639\u0631\u0636 \u0628\u0634\u0627\u0634\u0629 \u0643\u0627\u0645\u0644\u0629",
|
||||
"Fully Supported": "\u0645\u062f\u0639\u0648\u0645 \u062a\u0645\u0627\u0645\u0627\u064b",
|
||||
"Gender": "\u0627\u0644\u062c\u0646\u0633",
|
||||
"General": "\u0639\u0627\u0645",
|
||||
"Generate": "\u0625\u0646\u0634\u0627\u0621",
|
||||
"Generate Exception Certificates": "\u0625\u0646\u0634\u0627\u0621 \u0634\u0647\u0627\u062f\u0627\u062a \u0627\u0633\u062a\u062b\u0646\u0627\u0626\u064a\u0629",
|
||||
"Generate a Certificate for all users on the Exception list": "\u0625\u0646\u0634\u0627\u0621 \u0634\u0647\u0627\u062f\u0629 \u0644\u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0627\u0644\u0645\u062f\u0631\u062c\u0629 \u0627\u0633\u0645\u0627\u0624\u0647\u0645 \u0639\u0644\u0649 \u0644\u0627\u0626\u062d\u0629 \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621\u0627\u062a",
|
||||
"Generate certificates for all users on the Exception list who do not yet have a certificate": "\u0623\u0646\u0634\u0626 \u0634\u0647\u0627\u062f\u0627\u062a \u0644\u0643\u0644 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0627\u0644\u0630\u064a\u0646 \u0644\u0627 \u064a\u062d\u0645\u0644\u0648\u0646 \u0634\u0647\u0627\u062f\u0627\u062a \u0648\u0627\u0644\u0645\u0648\u062c\u0648\u062f\u064a\u0646 \u0639\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621\u0627\u062a",
|
||||
"Generate the user's certificate": "\u0625\u0646\u0634\u0627\u0621 \u0634\u0647\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645",
|
||||
"Get Credit": "\u0627\u062d\u0635\u0644 \u0639\u0644\u0649 \u0645\u0627\u062f\u0651\u0629 \u062f\u0631\u0627\u0633\u064a\u0629",
|
||||
"Go to Dashboard": "\u0627\u0644\u0630\u0647\u0627\u0628 \u0625\u0644\u0649 \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a",
|
||||
@@ -839,10 +864,11 @@
|
||||
"Hide Answer": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0625\u062c\u0627\u0628\u0629",
|
||||
"Hide Deprecated Settings": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0645\u0647\u0645\u0644\u0629",
|
||||
"Hide Discussion": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0646\u0642\u0627\u0634",
|
||||
"Hide Exam After Due Date": "\u0623\u062e\u0641 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631 \u0628\u0639\u062f \u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0627\u0633\u062a\u062d\u0642\u0627\u0642",
|
||||
"Hide Previews": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0645\u0639\u0627\u064a\u0646\u0629",
|
||||
"Hide closed captions": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 \u0627\u0644\u0641\u0631\u0639\u064a\u0651\u0629 \u0627\u0644\u062a\u064a \u062c\u0631\u0649 \u0625\u063a\u0644\u0627\u0642\u0647\u0627",
|
||||
"Hide from students": "\u0625\u062e\u0641\u0627\u0621 \u0639\u0646 \u0627\u0644\u0637\u0644\u0651\u0627\u0628",
|
||||
"Hide content after due date": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0628\u0639\u062f \u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0645\u062d\u062f\u062f\n ",
|
||||
"Hide entire subsection": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a \u0628\u0627\u0644\u0643\u0627\u0645\u0644",
|
||||
"Hide from learners": "\u0625\u062e\u0641\u0627\u0621 \u0645\u0646 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646",
|
||||
"Hide notes": "\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0645\u0644\u0627\u062d\u0638\u0627\u062a",
|
||||
"Hiding from Students": "\u0625\u062e\u0641\u0627\u0621 \u0639\u0646 \u0627\u0644\u0637\u0644\u0651\u0627\u0628",
|
||||
"High Definition": "\u062f\u0642\u0651\u0629 \u0639\u0627\u0644\u064a\u0629",
|
||||
@@ -856,13 +882,13 @@
|
||||
"ID": "\u0627\u0644\u0631\u0642\u0645 \u0627\u0644\u062a\u0639\u0631\u064a\u0641\u064a",
|
||||
"ID-Verification is not required for this Professional Education course.": "\u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0645\u0646 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u063a\u064a\u0631 \u0645\u0637\u0644\u0648\u0628 \u0644\u0645\u0633\u0627\u0642 \u0627\u0644\u062a\u0639\u0644\u064a\u0645 \u0627\u0644\u0645\u0647\u0646\u064a \u0647\u0630\u0627.",
|
||||
"Identity Verification In Progress": "\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0645\u0646 \u0627\u0644\u0647\u0648\u064a\u0629",
|
||||
"If the unit was previously published and released to students, any changes you made to the unit when it was hidden will now be visible to students.": "\u0641\u064a \u062d\u0627\u0644 \u062c\u0631\u0649 \u0646\u0634\u0631 \u0627\u0644\u0648\u062d\u062f\u0629 \u0648\u0633\u0628\u0642 \u0625\u0635\u062f\u0627\u0631\u0647\u0627 \u0644\u0644\u0637\u0644\u0651\u0627\u0628\u060c \u0641\u0633\u062a\u0635\u0628\u062d \u062c\u0645\u064a\u0639 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0627\u0644\u062a\u064a \u0623\u062f\u062e\u0644\u062a\u0647\u0627 \u0639\u0644\u0649 \u0627\u0644\u0648\u062d\u062f\u0629 \u0639\u0646\u062f\u0645\u0627 \u0643\u0627\u0646\u062a \u0645\u062e\u0641\u064a\u0629\u060c \u0645\u0631\u0626\u064a\u0651\u0629\u064b \u0628\u0627\u0644\u0646\u0633\u0628\u0629 \u0644\u0644\u0637\u0644\u0651\u0627\u0628 \u0627\u0644\u0622\u0646.",
|
||||
"If the unit was previously published and released to learners, any changes you made to the unit when it was hidden will now be visible to learners.": "\u0625\u0630\u0627 \u0643\u0627\u0646\u062a \u0627\u0644\u0648\u062d\u062f\u0629 \u0645\u0646\u0634\u0648\u0631\u0629 \u0641\u064a \u0627\u0644\u0633\u0627\u0628\u0642 \u0648\u062a\u0645 \u0625\u0637\u0644\u0627\u0642\u0647\u0627 \u0625\u0644\u0649 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646\u060c \u0641\u0625\u0646 \u0623\u064a \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u062a\u0642\u0648\u0645 \u0628\u0625\u062c\u0631\u0627\u0626\u0647\u0627 \u0639\u0644\u0649 \u0627\u0644\u0648\u062d\u062f\u0629 \u0639\u0646\u062f\u0645\u0627 \u0643\u0627\u0646\u062a \u0645\u062e\u0628\u0623\u0629 \u0633\u062a\u0643\u0648\u0646 \u0645\u0631\u0626\u064a\u0629 \u0644\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646.",
|
||||
"If the unit was previously published and released to students, any changes you made to the unit when it was hidden will now be visible to students. Do you want to proceed?": "\u0641\u064a \u062d\u0627\u0644 \u0646\u064f\u0634\u0631\u062a \u0627\u0644\u0648\u062d\u062f\u0629 \u0648\u0623\u064f\u0635\u062f\u0631\u062a \u0644\u0644\u0637\u0644\u0651\u0627\u0628 \u0645\u0646 \u0642\u0628\u0644\u060c \u0641\u0625\u0646\u0651 \u0623\u064a \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0643\u0646\u062a \u0642\u062f \u0623\u062f\u062e\u0644\u062a\u0647\u0627 \u0639\u0644\u064a\u0647\u0627 \u0639\u0646\u062f\u0645\u0627 \u0643\u0627\u0646\u062a \u0645\u062e\u0641\u064a\u0629 \u0633\u062a\u0635\u0628\u062d \u0627\u0644\u0622\u0646 \u0645\u0631\u0626\u064a\u0629 \u0644\u0644\u0637\u0644\u0651\u0627\u0628. \u0647\u0644 \u062a\u0631\u064a\u062f \u0627\u0644\u0645\u062a\u0627\u0628\u0639\u0629\u061f",
|
||||
"If you do not yet have an account, use the button below to register.": "\u0625\u0630\u0627 \u0644\u0645 \u062a\u0643\u0646 \u062a\u0645\u0644\u0643 \u062d\u0633\u0627\u0628\u064b\u0627 \u0628\u0639\u062f\u060c \u064a\u064f\u0631\u062c\u0649 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0632\u0631\u0651 \u0623\u062f\u0646\u0627\u0647 \u0644\u0644\u062a\u0633\u062c\u064a\u0644.",
|
||||
"If you don't verify your identity now, you can still explore your course from your dashboard. You will receive periodic reminders from %(platformName)s to verify your identity.": "\u0625\u0630\u0627 \u0644\u0645 \u062a\u0624\u0643\u0651\u062f \u0647\u0648\u064a\u0651\u062a\u0643 \u0627\u0644\u0622\u0646\u060c \u0633\u064a\u0628\u0642\u0649 \u0628\u0625\u0645\u0643\u0627\u0646\u0643 \u0627\u0633\u062a\u0643\u0634\u0627\u0641 \u0645\u0633\u0627\u0642\u0643 \u0645\u0646 \u062e\u0644\u0627\u0644 \u0644\u0648\u062d\u0629 \u0645\u0639\u0644\u0648\u0645\u0627\u062a\u0643. \u0648\u0633\u062a\u062a\u0644\u0642\u0651\u0649 \u0631\u0633\u0627\u0626\u0644 \u062a\u0630\u0643\u064a\u0631\u064a\u0629 \u062f\u0648\u0631\u064a\u0651\u064b\u0627 \u0645\u0646 %(platformName)s \u0644\u062a\u0623\u0643\u064a\u062f \u0647\u0648\u064a\u0651\u062a\u0643. ",
|
||||
"If you leave, you can no longer post in this team's discussions. Your place will be available to another learner.": "\u0641\u064a \u062d\u0627\u0644 \u0627\u062e\u062a\u0631\u062a \u062a\u0631\u0643 \u0627\u0644\u0641\u0631\u064a\u0642\u060c \u0644\u0646 \u062a\u062a\u0645\u0643\u0651\u0646 \u0645\u0633\u062a\u0642\u0628\u0644\u064b\u0627 \u0645\u0646 \u0627\u0644\u0645\u0634\u0627\u0631\u0643\u0629 \u0641\u064a \u0646\u0642\u0627\u0634\u0627\u062a \u0623\u0639\u0636\u0627\u0626\u0647 \u0625\u0644\u0649 \u062c\u0627\u0646\u0628 \u0625\u062a\u0627\u062d\u0629 \u0627\u0644\u0634\u0627\u063a\u0631 \u0627\u0644\u0630\u064a \u0633\u062a\u062a\u0631\u0643\u0647 \u0644\u0645\u062a\u0639\u0644\u0651\u0645 \u0622\u062e\u0631.",
|
||||
"If you make significant changes, make sure you notify members of the team before making these changes.": "\u0641\u064a \u062d\u0627\u0644 \u0623\u062c\u0631\u064a\u062a \u062a\u0639\u062f\u064a\u0644\u0627\u062a \u0645\u0647\u0645\u0651\u0629\u060c \u062a\u0623\u0643\u0651\u062f \u0645\u0646 \u0625\u062e\u0637\u0627\u0631 \u0628\u0642\u064a\u0629 \u0623\u0639\u0636\u0627\u0621 \u0627\u0644\u0641\u0631\u064a\u0642 \u0642\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0647\u0630\u0647 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a.",
|
||||
"If you make this %(xblockType)s visible to students, students will be able to see its content after the release date has passed and you have published the unit.": "\u0633\u064a\u062a\u0645\u0643\u0651\u0646 \u0627\u0644\u0637\u0644\u0627\u0628\u060c \u0641\u064a \u062d\u0627\u0644 \u062c\u0639\u0644\u062a %(xblockType)s \u0647\u0630\u0647 \u0645\u0631\u0626\u064a\u0629 \u0644\u0644\u0637\u0644\u0651\u0627\u0628\u060c \u0645\u0646 \u0645\u0634\u0627\u0647\u062f\u0629 \u0645\u062d\u062a\u0648\u0627\u0647\u0627 \u0628\u0639\u062f \u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0625\u0635\u062f\u0627\u0631 \u0648\u0646\u0634\u0631\u0643 \u0644\u0644\u0648\u062d\u062f\u0629.",
|
||||
"If you make this %(xblockType)s visible to learners, learners will be able to see its content after the release date has passed and you have published the unit. Only units that are explicitly hidden from learners will remain hidden after you clear this option for the %(xblockType)s.": "\u0625\u0630\u0627 \u0642\u0645\u062a \u0628\u062c\u0639\u0644 %(xblockType)s \u0645\u0631\u0626\u064a\u064b\u0627 \u0644\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646\u060c \u0633\u0648\u0641 \u064a\u0643\u0648\u0646 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u0648\u0646 \u0642\u0627\u062f\u0631\u064a\u0646 \u0639\u0644\u0649 \u0631\u0624\u064a\u0629 \u0645\u062d\u062a\u0648\u0627\u0647 \u0628\u0639\u062f \u0645\u0631\u0648\u0631 \u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0625\u0637\u0644\u0627\u0642 \u0648\u0646\u0634\u0631 \u0627\u0644\u0648\u062d\u062f\u0629. \u0641\u0642\u0637 \u0633\u062a\u0628\u0642\u0649 \u0627\u0644\u0648\u062d\u062f\u0627\u062a \u0627\u0644\u062a\u064a \u0643\u0627\u0646\u062a \u0645\u062e\u0628\u0623\u0629 \u0628\u0634\u0643\u0644 \u0648\u0627\u0636\u062d \u0645\u0646 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0645\u062e\u0641\u064a\u0629 \u0628\u0639\u062f \u062d\u0630\u0641 \u0627\u0644\u062e\u064a\u0627\u0631 \u0627\u0644\u062e\u0627\u0635 \u0628\u0640 %(xblockType)s.",
|
||||
"If you use the Advanced Editor, this problem will be converted to XML and you will not be able to return to the Simple Editor Interface.\n\nProceed to the Advanced Editor and convert this problem to XML?": "\u0625\u0646 \u0643\u0646\u062a \u062a\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0645\u062d\u0631\u0651\u0650\u0631 \u0627\u0644\u0645\u062a\u0642\u062f\u0651\u0650\u0645\u060c \u0641\u0647\u0630\u0647 \u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0633\u062a\u064f\u062d\u0648\u0651\u064e\u0644 \u0625\u0644\u0649 \u0645\u0644\u0641 XML \u0648\u0644\u0646 \u062a\u0642\u062f\u0631 \u0639\u0644\u0649 \u0627\u0644\u0631\u062c\u0648\u0639 \u0625\u0644\u0649 \u0648\u0627\u062c\u0647\u0629 \u0627\u0644\u0645\u062d\u0631\u0651\u0650\u0631 \u0627\u0644\u0645\u0628\u0633\u0651\u064e\u0637 .\n\n\u0647\u0644 \u062a\u0648\u062f \u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0625\u0644\u0649 \u0627\u0644\u0645\u062d\u0631\u0651\u0650\u0631 \u0627\u0644\u0645\u062a\u0642\u062f\u0651\u0650\u0645 \u0648\u062a\u062d\u0648\u064a\u0644 \u0647\u0630\u0647 \u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0625\u0644\u0649 \u0645\u0644\u0641 XML\u061f ",
|
||||
"Ignore": "\u062a\u062c\u0627\u0647\u0644",
|
||||
"Ignore all": "\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u0643\u0644\u0651",
|
||||
@@ -903,11 +929,13 @@
|
||||
"Instructor Photo URL": "\u0631\u0627\u0628\u0637 \u0635\u0648\u0631\u0629 \u0627\u0644\u0645\u0639\u0644\u0651\u0645",
|
||||
"Instructor Title": "\u0644\u0642\u0628 \u0627\u0644\u0645\u0639\u0644\u0645",
|
||||
"Instructor tools": "\u0623\u062f\u0648\u0627\u062a \u0627\u0644\u0623\u0633\u062a\u0627\u0630",
|
||||
"Internal Server Error.": "\u062e\u0637\u0623 \u0641\u064a \u062e\u0627\u062f\u0645 \u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a.",
|
||||
"Introduction to Cookie Baking": "\u0645\u0642\u062f\u0651\u0645\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642\u0629 \u062e\u064e\u0628\u0632 \u0627\u0644\u0643\u0639\u0643",
|
||||
"Invalidate Certificate": "\u0625\u0644\u063a\u0627\u0621 \u0634\u0647\u0627\u062f\u0629",
|
||||
"Invalidated": "\u062c\u0631\u0649 \u0627\u0644\u0625\u0644\u063a\u0627\u0621",
|
||||
"Invalidated By": "\u0623\u064f\u0644\u063a\u064a\u062a \u0645\u0646 \u0642\u0650\u0628\u064e\u0644",
|
||||
"Is Visible To:": "\u0645\u0631\u0626\u064a\u0651\u064d \u0645\u0646 \u0642\u0650\u0628\u064e\u0644:",
|
||||
"Is this OK?": "\u0645\u0648\u0627\u0641\u0642\u061f",
|
||||
"Is your name on your ID readable?": "\u0647\u0644 \u0627\u0633\u0645\u0643 \u0627\u0644\u0645\u0648\u062c\u0648\u062f \u0639\u0644\u0649 \u0628\u0637\u0627\u0642\u062a\u0643 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u0633\u0647\u0644 \u0627\u0644\u0642\u0631\u0627\u0621\u0629\u061f",
|
||||
"It is strongly recommended that you include four or fewer signatories. If you include additional signatories, preview the certificate in Print View to ensure the certificate will print correctly on one page.": "\u064a\u064f\u0648\u0635\u0649 \u0628\u0634\u062f\u0629 \u0628\u062a\u0636\u0645\u064a\u0646 4 \u0645\u0648\u0642\u0639\u064a\u0651\u0646 \u0639\u0644\u0649 \u0627\u0644\u0623\u0643\u062b\u0631. \u0631\u0627\u062c\u0639 \u0627\u0644\u0634\u0647\u0627\u062f\u0629 \u0641\u064a \u0648\u0636\u0639 \u2019\u0645\u0631\u0627\u062c\u0639\u0629 \u0627\u0644\u0637\u0628\u0627\u0639\u0629\u2018\u060c \u0641\u064a \u062d\u0627\u0644 \u0625\u0636\u0627\u0641\u062a\u0643 \u0644\u0644\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u0645\u0648\u0642\u0639\u0651\u064a\u0646\u060c \u0644\u0636\u0645\u0627\u0646 \u0637\u0628\u0627\u0639\u0629 \u0627\u0644\u0634\u0647\u0627\u062f\u0629 \u0628\u0627\u0644\u0634\u0643\u0644 \u0627\u0644\u0635\u062d\u064a\u062d \u0639\u0644\u0649 \u0635\u0641\u062d\u0629 \u0648\u0627\u062d\u062f\u0629. ",
|
||||
"Italic": "\u062e\u0637 \u0645\u0627\u0626\u0644",
|
||||
@@ -930,6 +958,8 @@
|
||||
"Learn more about {license_name}": "\u0627\u0639\u0631\u0641 \u0627\u0644\u0645\u0632\u064a\u062f \u0639\u0646 {license_name}",
|
||||
"Learners are added to this cohort automatically.": "\u064a\u064f\u0636\u0627\u0641 \u0627\u0644\u0645\u062a\u0639\u0644\u0651\u0645\u0648\u0646 \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0634\u0639\u0628\u0629 \u062a\u0644\u0642\u0627\u0626\u064a\u0651\u064b\u0627.",
|
||||
"Learners are added to this cohort only when you provide their email addresses or usernames on this page.": "\u0644\u0627 \u064a\u064f\u0636\u0627\u0641 \u0627\u0644\u0645\u062a\u0639\u0644\u0651\u0645\u0648\u0646 \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0634\u0639\u0628\u0629 \u0625\u0644\u0651\u0627 \u0639\u0646\u062f \u062a\u062d\u062f\u064a\u062f \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0623\u0648 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643\u0644 \u0648\u0627\u062d\u062f\u064d \u0645\u0646\u0647\u0645 \u0639\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629. ",
|
||||
"Learners do not see the subsection in the course outline. The subsection is not included in grade calculations.": "\u0644\u0627 \u064a\u0631\u0649 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u0648\u0646 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a \u0641\u064a \u0645\u062e\u0637\u0637 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629. \u0644\u0645 \u064a\u062a\u0645 \u062a\u0636\u0645\u064a\u0646 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a \u0641\u064a \u062d\u0633\u0627\u0628\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u0648\u0649.",
|
||||
"Learners see the published subsection and can access its content.": "\u0627\u0644\u0645\u062a\u0639\u0644\u0645\u0648\u0646 \u064a\u0631\u0648\u0646 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a \u0627\u0644\u0645\u0646\u0634\u0648\u0631 \u0648\u064a\u0645\u0643\u0646\u0647\u0645 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0645\u062d\u062a\u0648\u0627\u0647.",
|
||||
"Learners who require verification must pass the selected checkpoint to see the content in this unit. Learners who do not require verification see this content by default.": "\u0644\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0645\u062a\u0648\u0641\u0651\u0631 \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0648\u062d\u062f\u0629\u060c \u0644\u0627\u0628\u062f\u0651 \u0644\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646\u060c \u0645\u0645\u0646 \u0647\u0645 \u0628\u062d\u0627\u062c\u0629 \u0644\u0625\u062c\u0631\u0627\u0621 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642\u060c \u0627\u062c\u062a\u064a\u0627\u0632 \u0646\u0642\u0637\u0629 \u0627\u062e\u062a\u0628\u0627\u0631 \u0628\u064a\u0646\u0645\u0627 \u0633\u064a\u062a\u0645\u0643\u0651\u0646 \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u0648\u0646 \u0645\u0645\u0646 \u0644\u064a\u0633\u0648\u0627 \u0628\u062d\u0627\u062c\u0629 \u0644\u0625\u062c\u0631\u0627\u0621 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0645\u0646 \u0631\u0624\u064a\u0629 \u0647\u0630\u0627 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0628\u0634\u0643\u0644 \u0627\u0641\u062a\u0631\u0627\u0636\u064a.",
|
||||
"Learning Outcome": "\u0646\u062a\u064a\u062c\u0629 \u0627\u0644\u062a\u0639\u0644\u0645",
|
||||
"Leave Team": "\u0623\u062a\u0631\u0643 \u0627\u0644\u0641\u0631\u064a\u0642",
|
||||
@@ -947,7 +977,8 @@
|
||||
"Link Your Account": "\u0627\u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0643",
|
||||
"Link types should be unique.": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0631\u0648\u0627\u0628\u0637 \u0641\u0631\u064a\u062f\u0629.",
|
||||
"Link your {accountName} account": "\u0627\u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0643 \u0639\u0644\u0649 {accountName}",
|
||||
"Linked Accounts": "\u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a \u0627\u0644\u0645\u0631\u0628\u0648\u0637\u0629",
|
||||
"Link your {accountName} account to your {platformName} account and use {accountName} to sign in to {platformName}.": "\u0627\u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0643 \u0639\u0644\u0649 {accountName} \u0645\u0639 \u062d\u0633\u0627\u0628\u0643 \u0639\u0644\u0649 {platformName}. \u0648\u0628\u0647\u0630\u0627 \u062a\u0633\u062a\u0637\u064a\u0639 \u0623\u0646 \u062a\u0633\u062c\u0644 \u062f\u062e\u0648\u0644\u0643 \u0641\u064a {platformName} \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u062d\u0633\u0627\u0628\u0643 \u0641\u064a {accountName}.",
|
||||
"Linked Accounts": "\u0627\u0644\u062d\u0633\u0627\u0628\u0627\u062a \u0627\u0644\u0645\u0631\u062a\u0628\u0637\u0629",
|
||||
"Linking": "\u0627\u0644\u0631\u0628\u0637",
|
||||
"Links are generated on demand and expire within 5 minutes due to the sensitive nature of student information.": "\u064a\u062c\u0631\u064a \u0627\u0633\u062a\u062d\u062f\u0627\u062b \u0627\u0644\u0631\u0648\u0627\u0628\u0637 \u0639\u0646\u062f \u0627\u0644\u0637\u0644\u0628 \u0648\u064a\u0646\u062a\u0647\u064a \u0645\u0641\u0639\u0648\u0644\u0647\u0627 \u0641\u064a \u063a\u0636\u0648\u0646 5 \u062f\u0642\u0627\u0626\u0642 \u0646\u0638\u0631\u064b\u0627 \u0644\u062d\u0633\u0627\u0633\u064a\u0629 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0637\u0627\u0644\u0628.",
|
||||
"Links should be unique.": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0627\u0644\u0631\u0648\u0627\u0628\u0637 \u0641\u0631\u064a\u062f\u0629.",
|
||||
@@ -966,6 +997,7 @@
|
||||
"\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0646\u062a\u0627\u0626\u062c %(num_items)s \u0627\u0644\u062a\u0627\u0644\u064a\u0629",
|
||||
"\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0646\u062a\u0627\u0626\u062c \u0627\u0644\u0640 %(num_items)s \u0627\u0644\u062a\u0627\u0644\u064a\u0629"
|
||||
],
|
||||
"Load next {numResponses} responses": "\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0631\u062f\u0648\u062f {numResponses} \u0627\u0644\u062a\u0627\u0644\u064a\u0629",
|
||||
"Loading": "\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u062d\u0645\u064a\u0644",
|
||||
"Loading content": "\u062c\u0627\u0631\u064a \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u062d\u062a\u0648\u0649",
|
||||
"Loading data...": "\u062c\u0627\u0631\u064a \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a...",
|
||||
@@ -994,14 +1026,18 @@
|
||||
"Mark as Answer": "\u0627\u0644\u062a\u062d\u062f\u064a\u062f \u0643\u0625\u062c\u0627\u0628\u0629",
|
||||
"Mark enrollment code as unused": "\u0648\u0633\u0645 \u0631\u0645\u0632 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0639\u0644\u0649 \u0623\u0646\u0651\u0647 \u063a\u064a\u0631 \u0645\u0633\u062a\u062e\u062f\u0645",
|
||||
"Markdown Editing Help": "\u0644\u0644\u0645\u0633\u0627\u0639\u062f\u0629 \u0641\u064a \u062a\u062d\u0631\u064a\u0631 \u0644\u063a\u0629 \u0645\u0627\u0631\u0643\u062f\u0627\u0648\u0646",
|
||||
"Marketing Slug": "\u0627\u0644\u0634\u0627\u0631\u0629 \u0627\u0644\u062a\u0633\u0648\u064a\u0642\u064a\u0629",
|
||||
"Marketing Slug is required.": "\u0627\u0644\u0634\u0627\u0631\u0629 \u0627\u0644\u062a\u0633\u0648\u064a\u0642\u064a\u0629 \u0645\u0637\u0644\u0648\u0628\u0629.",
|
||||
"Match case": "\u0645\u0637\u0627\u0628\u0642\u0629 \u062d\u0627\u0644\u0629 \u0627\u0644\u0623\u062d\u0631\u0641",
|
||||
"Max file size exceeded": "\u062c\u0631\u0649 \u062a\u062c\u0627\u0648\u0632 \u0627\u0644\u062d\u062f\u0651 \u0627\u0644\u0623\u0642\u0635\u0649 \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0628\u0647 \u0644\u062d\u062c\u0645 \u0627\u0644\u0645\u0644\u0641. ",
|
||||
"Maximum": "\u0627\u0644\u062d\u062f\u0651 \u0627\u0644\u0623\u0642\u0635\u0649",
|
||||
"Membership": "\u0627\u0644\u0639\u0636\u0648\u064a\u0629",
|
||||
"Merge cells": "\u062f\u0645\u062c \u0627\u0644\u062e\u0644\u0627\u064a\u0627",
|
||||
"Message:": "\u0627\u0644\u0631\u0633\u0627\u0644\u0629:",
|
||||
"MicroMasters": "MicroMasters",
|
||||
"Middle": "\u0648\u0633\u0637",
|
||||
"Minimum Score:": "\u0627\u0644\u062d\u062f\u0651 \u0627\u0644\u0623\u062f\u0646\u0649 \u0644\u0644\u0645\u062c\u0645\u0648\u0639:",
|
||||
"Mode: %(mode)s": "\u0627\u0644\u0648\u0636\u0639: %(mode)s",
|
||||
"Module state successfully deleted.": "\u062c\u0631\u0649 \u0628\u0646\u062c\u0627\u062d \u062d\u0630\u0641 \u062d\u0627\u0644\u0629 \u0627\u0644\u0648\u062d\u062f\u0629 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u064a\u0629.",
|
||||
"More": "\u0627\u0644\u0645\u0632\u064a\u062f",
|
||||
"Must complete verification checkpoint": " \u064a\u062c\u0628 \u0625\u062a\u0645\u0627\u0645 \u0646\u0642\u0637\u0629 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631 \u0627\u0644\u062e\u0627\u0635\u0651\u0629 \u0628\u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642",
|
||||
@@ -1009,6 +1045,7 @@
|
||||
"Muted": "\u0645\u0643\u062a\u0648\u0645 \u0627\u0644\u0635\u0648\u062a ",
|
||||
"My Bookmarks": "\u0639\u0644\u0627\u0645\u0627\u062a\u064a \u0627\u0644\u0645\u0631\u062c\u0639\u064a\u0651\u0629",
|
||||
"My Notes": "\u0645\u0644\u0627\u062d\u0638\u0627\u062a\u064a",
|
||||
"My Orders": "\u0637\u0644\u0628\u0627\u062a \u0634\u0631\u0627\u0626\u064a",
|
||||
"My Team": "\u0641\u0631\u064a\u0642\u064a",
|
||||
"N/A": "\u063a\u064a\u0631 \u0645\u062a\u0648\u0641\u0651\u0631",
|
||||
"Name": "\u0627\u0644\u0627\u0633\u0645",
|
||||
@@ -1042,6 +1079,7 @@
|
||||
"No results": "\u0644\u0627 \u0646\u062a\u0627\u0626\u062c",
|
||||
"No results found for \"%(query_string)s\". Please try searching again.": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0645 \u0646\u0639\u062b\u0631 \u0639\u0644\u0649 \u0646\u062a\u0627\u0626\u062c \u0644\u0640 \"%(query_string)s\". \u064a\u064f\u0631\u062c\u0649 \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u0628\u062d\u062b \u0645\u0631\u0651\u0629 \u0623\u062e\u0631\u0649. ",
|
||||
"No results found for %(original_query)s. Showing results for %(suggested_query)s.": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0645 \u0646\u0639\u062b\u0631 \u0639\u0644\u0649 \u0646\u062a\u0627\u0626\u062c \u0644\u0640 %(original_query)s. \u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0646\u062a\u0627\u0626\u062c \u0644\u0640 %(suggested_query)s. ",
|
||||
"No results found for {original_query}. ": "\u0644\u0645 \u0646\u0639\u062b\u0631 \u0639\u0644\u0649 {original_query}. ",
|
||||
"No sources": "\u0644\u0627 \u062a\u062a\u0648\u0641\u0651\u0631 \u0645\u0635\u0627\u062f\u0631.",
|
||||
"No tasks currently running.": "\u0644\u0627 \u062a\u0648\u062c\u062f \u0645\u0647\u0627\u0645 \u062c\u0627\u0631\u064a\u0629 \u062d\u0627\u0644\u064a\u0651\u064b\u0627.",
|
||||
"No threads matched your query.": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0627 \u062a\u0648\u062c\u062f \u0645\u0648\u0627\u0636\u064a\u0639 \u0645\u0637\u0627\u0628\u0642\u0629 \u0644\u0627\u0633\u062a\u0641\u0633\u0627\u0631\u0643.",
|
||||
@@ -1049,12 +1087,15 @@
|
||||
"Nonbreaking space": "\u0628\u0644\u0627 \u0645\u0633\u0627\u0641\u0629 \u0641\u0627\u0635\u0644\u0629",
|
||||
"Noncommercial": "\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u063a\u064a\u0631 \u062a\u062c\u0627\u0631\u064a",
|
||||
"None": "\u0644\u0627 \u0634\u064a\u0621",
|
||||
"Not Currently Available": "\u063a\u064a\u0631 \u0645\u062a\u0627\u062d\u064d \u0627\u0644\u0622\u0646",
|
||||
"Not Graded": "\u063a\u064a\u0631 \u0645\u0642\u064a\u0651\u064e\u0645",
|
||||
"Not Supported": "\u063a\u064a\u0631 \u0645\u062f\u0639\u0648\u0645",
|
||||
"Not able to set passing grade to less than %(minimum_grade_cutoff)s%.": "\u0644\u0645 \u064a\u0645\u0643\u0646 \u062a\u062d\u062f\u064a\u062f \u062f\u0631\u062c\u0629 \u0627\u0644\u0646\u062c\u0627\u062d \u0639\u0646\u062f \u0623\u0642\u0644\u0651 \u0645\u0646 %(minimum_grade_cutoff)s%.",
|
||||
"Not available": "\u063a\u064a\u0631 \u0645\u062a\u0627\u062d",
|
||||
"Not in Use": "\u0644\u064a\u0633 \u0642\u064a\u062f \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645",
|
||||
"Not selected": "\u063a\u064a\u0631 \u0645\u0646\u062a\u0642\u0627\u0629",
|
||||
"Note": "\u0645\u0644\u0627\u062d\u0638\u0629",
|
||||
"Note: Do not hide graded assignments after they have been released.": "\u0645\u0644\u0627\u062d\u0638\u0629: \u0644\u0627 \u062a\u0642\u0645 \u0628\u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0645\u0647\u0627\u0645 \u0627\u0644\u0645\u062a\u062f\u0631\u062c\u0629 \u0628\u0639\u062f \u0625\u0637\u0644\u0627\u0642\u0647\u0627. ",
|
||||
"Note: Students can be in only one cohort. Adding students to this group overrides any previous group assignment.": "\u0645\u0644\u0627\u062d\u0638\u0629: \u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u062a\u0648\u0627\u062c\u062f \u0627\u0644\u0637\u0644\u0651\u0627\u0628 \u0641\u064a \u0634\u0639\u0628\u0629 \u0648\u0627\u062d\u062f\u0629 \u0641\u0642\u0637. \u0648\u062a\u064f\u0644\u063a\u064a \u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u0637\u0644\u0651\u0627\u0628 \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0634\u0639\u0628\u0629 \u0623\u064a \u062a\u0639\u064a\u064a\u0646 \u0633\u0627\u0628\u0642 \u0644\u0647\u0645.",
|
||||
"Noted in:": "\u0644\u0648\u062d\u0650\u0638 \u0641\u064a:",
|
||||
"Notes": "\u0645\u0644\u0627\u062d\u0638\u0627\u062a",
|
||||
@@ -1066,6 +1107,9 @@
|
||||
"Numbered List (Ctrl+O)": "\u0642\u0627\u0626\u0645\u0629 \u0645\u0631\u0642\u0651\u0645\u0629 (Ctrl+O)",
|
||||
"Numbered list": "\u0644\u0627\u0626\u062d\u0629 \u0645\u0631\u0642\u0651\u0645\u0629",
|
||||
"OK": "\u0645\u0648\u0627\u0641\u0642",
|
||||
"ORDER NAME": "\u0627\u0633\u0645 \u0627\u0644\u0637\u0644\u0628",
|
||||
"ORDER NUMBER": "\u0631\u0642\u0645 \u0627\u0644\u0637\u0644\u0628",
|
||||
"ORDER PLACED": "\u062a\u0645 \u0648\u0636\u0639 \u0627\u0644\u0637\u0644\u0628",
|
||||
"Ok": "\u0645\u0648\u0627\u0641\u0642",
|
||||
"Once in position, use the camera button {icon} to capture your ID": "\u0627\u0633\u062a\u062e\u062f\u0645 \u0632\u0631 \u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0627 {icon} \u0644\u0627\u0644\u062a\u0642\u0627\u0637 \u0635\u0648\u0631\u0629 \u0628\u0637\u0627\u0642\u062a\u0643 \u0627\u0644\u0634\u062e\u0635\u064a\u0629",
|
||||
"Once in position, use the camera button {icon} to capture your photo": "\u0627\u0633\u062a\u062e\u062f\u0645 \u0632\u0631 \u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0627 {icon} \u0644\u0627\u0644\u062a\u0642\u0627\u0637 \u0635\u0648\u0631\u062a\u0643 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 ",
|
||||
@@ -1073,12 +1117,14 @@
|
||||
"Only properly formatted .csv files will be accepted.": "\u0644\u0646 \u062a\u064f\u0642\u0628\u0644 \u0633\u0648\u0649 \u0645\u0644\u0641\u0651\u0627\u062a .csv \u0627\u0644\u0645\u0646\u0633\u0651\u0642\u0629 \u062a\u0646\u0633\u064a\u0642\u064b\u0627 \u0635\u062d\u064a\u062d\u064b\u0627. ",
|
||||
"Open": "\u0641\u062a\u062d",
|
||||
"Open Calculator": "\u0641\u062a\u062d \u0627\u0644\u0622\u0644\u0629 \u0627\u0644\u062d\u0627\u0633\u0628\u0629 ",
|
||||
"Open language menu": "\u0641\u062a\u062d \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0644\u063a\u0629",
|
||||
"Open language menu": "\u0641\u062a\u062d \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0644\u063a\u0627\u062a",
|
||||
"Open/download this file": "\u0641\u062a\u062d/\u062a\u0646\u0632\u064a\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641\u0651",
|
||||
"OpenAssessment Save Error": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623 \u0641\u064a \u062d\u0641\u0638 \u0627\u0644\u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u0645\u0641\u062a\u0648\u062d.",
|
||||
"Optional Characteristics": "\u0627\u0644\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0627\u062e\u062a\u064a\u0627\u0631\u064a\u0629",
|
||||
"Optional long description": "\u0648\u0635\u0641 \u0627\u062e\u062a\u064a\u0627\u0631\u064a \u0645\u0637\u0648\u0651\u064e\u0644",
|
||||
"Options for {license_name}": "\u062e\u064a\u0627\u0631\u0627\u062a {license_name}",
|
||||
"Order Details": "\u062a\u0641\u0627\u0635\u064a\u0644 \u0627\u0644\u0637\u0644\u0628\u064a\u0629",
|
||||
"Order History": "\u0627\u0644\u0645\u0634\u062a\u0631\u064a\u0627\u062a \u0627\u0644\u0633\u0627\u0628\u0642\u0629",
|
||||
"Order No.": "\u0631\u0642\u0645 \u0627\u0644\u0637\u0644\u0628 ",
|
||||
"Organization": "\u0627\u0644\u0645\u0624\u0633\u0651\u0633\u0629",
|
||||
"Organization ": "\u0627\u0644\u0645\u0624\u0633\u0633\u0629",
|
||||
@@ -1089,10 +1135,10 @@
|
||||
"Page number out of %(total_pages)s": "\u0631\u0642\u0645 \u0627\u0644\u0635\u0641\u062d\u0629 \u0645\u0646 \u0645\u062c\u0645\u0648\u0639 %(total_pages)s",
|
||||
"Pagination": "\u062a\u0631\u0642\u064a\u0645 \u0627\u0644\u0635\u0641\u062d\u0627\u062a",
|
||||
"Paragraph": "\u0641\u0642\u0631\u0629",
|
||||
"Password": "\u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631",
|
||||
"Password Reset Email Sent": "\u0644\u0642\u062f \u0623\u0631\u0633\u0644\u0646\u0627 \u0628\u0631\u064a\u062f\u0627\u064b \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u0627\u064b \u0644\u0643 \u0644\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631.",
|
||||
"Password assistance": "\u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629 \u0628\u062e\u0635\u0648\u0635 \u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631",
|
||||
"Password reset email sent. Follow the link in the email to change your password.": "\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0628\u0631\u064a\u062f \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631. \u064a\u064f\u0631\u062c\u0649 \u0627\u062a\u0651\u0628\u0627\u0639 \u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0648\u0627\u0631\u062f \u0641\u064a \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0644\u0627\u0633\u062a\u0643\u0645\u0627\u0644 \u0627\u0644\u0639\u0645\u0644\u064a\u0629 . ",
|
||||
"Password": "\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631",
|
||||
"Password Reset Email Sent": "\u0644\u0642\u062f \u0623\u0631\u0633\u0644\u0646\u0627 \u0628\u0631\u064a\u062f\u0627\u064b \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u0627\u064b \u0644\u0643 \u0644\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631.",
|
||||
"Password assistance": "\u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629 \u0628\u062e\u0635\u0648\u0635 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631",
|
||||
"Password reset email sent. Follow the link in the email to change your password.": "\u062a\u0645 \u0625\u0631\u0633\u0627\u0644 \u0628\u0631\u064a\u062f \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631. \u064a\u064f\u0631\u062c\u0649 \u0627\u062a\u0651\u0628\u0627\u0639 \u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0648\u0627\u0631\u062f \u0641\u064a \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0644\u0627\u0633\u062a\u0643\u0645\u0627\u0644 \u0627\u0644\u0639\u0645\u0644\u064a\u0629 . ",
|
||||
"Paste": "\u0644\u0635\u0642",
|
||||
"Paste as text": "\u0644\u0635\u0642 \u0628\u0634\u0643\u0644 \u0646\u0635",
|
||||
"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u062e\u064a\u0627\u0631 \u0627\u0644\u0644\u0635\u0642 \u0645\u0636\u0628\u0648\u0637 \u0627\u0644\u0622\u0646 \u0648\u0641\u0642 \u0648\u0636\u0639\u064a\u0629 \u0627\u0644\u0646\u0635 \u0627\u0644\u0639\u0627\u062f\u064a\u060c \u0623\u064a \u0633\u062a\u064f\u0644\u0635\u0642 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0628\u0634\u0643\u0644 \u0646\u0635 \u0639\u0627\u062f\u064a \u062d\u062a\u0649 \u062a\u064f\u063a\u064a\u0651\u0650\u0631 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631.",
|
||||
@@ -1130,6 +1176,7 @@
|
||||
"Please do not use any spaces or special characters in this field.": "\u064a\u064f\u0631\u062c\u0649 \u0639\u062f\u0645 \u0625\u062f\u062e\u0627\u0644 \u0623\u064a \u0645\u0633\u0627\u0641\u0627\u062a \u0623\u0648 \u0623\u062d\u0631\u0641 \u062e\u0627\u0635\u0629 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u062d\u0642\u0644.",
|
||||
"Please enter a problem location.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0627\u0644\u0645\u0648\u0642\u0639 \u0627\u0644\u062e\u0627\u0635 \u0628\u0627\u0644\u0645\u0633\u0623\u0644\u0629.",
|
||||
"Please enter a student email address or username.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u062e\u0627\u0635 \u0628\u0627\u0644\u0637\u0627\u0644\u0628 \u0623\u0648 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0647 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.",
|
||||
"Please enter a term in the {anchorStart} search field{anchorEnd}.": "\u064a\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0645\u0635\u0637\u0644\u062d \u0641\u064a {anchorStart}\u0635\u0646\u062f\u0648\u0642 \u0627\u0644\u0628\u062d\u062b{anchorEnd}. ",
|
||||
"Please enter a username or email.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0627\u0633\u0645 \u0645\u0633\u062a\u062e\u062f\u0645 \u0627\u0648 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.",
|
||||
"Please enter a valid donation amount.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0645\u0628\u0644\u063a \u062a\u0628\u0631\u0651\u0639 \u0635\u062d\u064a\u062d.",
|
||||
"Please enter a valid email address": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0639\u0646\u0648\u0627\u0646 \u0635\u062d\u064a\u062d \u0644\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.",
|
||||
@@ -1140,13 +1187,16 @@
|
||||
"Please enter non-negative integer.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0639\u062f\u062f \u0635\u062d\u064a\u062d \u063a\u064a\u0631 \u0633\u0627\u0644\u0628.",
|
||||
"Please enter valid start date and time.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u062a\u0627\u0631\u064a\u062e \u0628\u062f\u0621 \u0648\u062a\u0648\u0642\u064a\u062a \u0635\u0627\u0644\u062d\u064a\u0646.",
|
||||
"Please enter your %(field)s.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0628\u064a\u0627\u0646\u0627\u062a %(field)s.",
|
||||
"Please enter your email address below and we will send you instructions for setting a new password.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0623\u062f\u0646\u0627\u0647\u060c \u0648\u0633\u0646\u0631\u0633\u0644 \u0644\u0643 \u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0636\u0628\u0637 \u0643\u0644\u0645\u0629 \u0633\u0631 \u062c\u062f\u064a\u062f\u0629.",
|
||||
"Please enter your email address below and we will send you instructions for setting a new password.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u062f\u062e\u0627\u0644 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0623\u062f\u0646\u0627\u0647\u060c \u0648\u0633\u0646\u0631\u0633\u0644 \u0644\u0643 \u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0625\u0639\u0627\u062f\u0629 \u0636\u0628\u0637 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u062c\u062f\u064a\u062f\u0629.",
|
||||
"Please follow the instructions here to upload a file elsewhere and link to it: {maxFileSizeRedirectUrl}": "\u064a\u064f\u0631\u062c\u0649 \u0627\u062a\u0651\u0628\u0627\u0639 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0648\u0627\u0631\u062f\u0629 \u0647\u0646\u0627 \u0644\u062a\u063a\u064a\u064a\u0631 \u0645\u0643\u0627\u0646 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641\u0651\u0627\u062a \u0627\u0644\u062a\u064a \u064a\u0632\u064a\u062f \u062d\u062c\u0645\u0647\u0627 \u0639\u0646 \u0627\u0644\u062d\u062f \u0627\u0644\u0623\u0642\u0635\u0649 \u0627\u0644\u0645\u0633\u0645\u0648\u062d \u0628\u0647 \u0648\u0644\u0648\u0636\u0639 \u0631\u0627\u0628\u0637 \u0644\u0647\u0627: {maxFileSizeRedirectUrl}",
|
||||
"Please print this page for your records; it serves as your receipt. You will also receive an email with the same information.": "\u064a\u064f\u0631\u062c\u0649 \u0637\u0628\u0627\u0639\u0629 \u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629 \u0644\u0644\u0627\u062d\u062a\u0641\u0627\u0638 \u0628\u0647\u0627 \u0641\u064a \u0633\u062c\u0644\u0651\u0627\u062a\u0643\u060c \u062d\u064a\u062b \u0633\u062a\u0643\u0648\u0646 \u0628\u0645\u062b\u0627\u0628\u0629 \u0625\u064a\u0635\u0627\u0644\u0643. \u0648\u0633\u062a\u0633\u062a\u0644\u0645 \u0623\u064a\u0636\u064b\u0627 \u0631\u0633\u0627\u0644\u0629 \u0628\u0631\u064a\u062f \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u062a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0646\u0641\u0633\u0647\u0627. ",
|
||||
"Please provide a description of the link destination.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u0636\u0627\u0641\u0629 \u062a\u0648\u0635\u064a\u0641 \u0644\u0648\u062c\u0647\u0629 \u0627\u0644\u0631\u0627\u0628\u0637.",
|
||||
"Please provide a valid URL.": "\u064a\u064f\u0631\u062c\u0649 \u0625\u0636\u0627\u0641\u0629 \u0631\u0627\u0628\u0637 \u0635\u062d\u064a\u062d.",
|
||||
"Please select a Course Run": "\u064a\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062f \u0645\u0633\u0627\u0631 \u0644\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Please select a PDF file to upload.": "\u064a\u064f\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0645\u0644\u0641 PDF \u0644\u062a\u062d\u0645\u064a\u0644\u0647. ",
|
||||
"Please select a course date": "\u0627\u062e\u062a\u0631 \u062a\u0627\u0631\u064a\u062e \u0644\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Please select a file in .srt format.": "\u064a\u064f\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0645\u0644\u0641 \u0628\u0635\u064a\u063a\u0629 .srt.",
|
||||
"Please select a valid organization.": "\u064a\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0645\u0646\u0638\u0645\u0629 \u0635\u0627\u0644\u062d\u0629.",
|
||||
"Please specify a reason.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062f \u0633\u0628\u0628",
|
||||
"Please verify that you have uploaded a valid image (PNG and JPEG).": "\u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u062a\u0623\u0643\u0651\u062f \u0645\u0646 \u062a\u062d\u0645\u064a\u0644\u0643 \u0644\u0635\u0648\u0631\u0629 \u0635\u0627\u0644\u062d\u0629 (\u0628\u0635\u064a\u063a\u0629 PNG \u0623\u0648 JPEG).",
|
||||
"Please verify that your webcam is connected and that you have allowed your browser to access it.": "\u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0645\u0646 \u0623\u0646\u0651 \u0643\u0627\u0645\u064a\u0631\u0627 \u0627\u0644\u0648\u064a\u0628 \u0645\u062a\u0651\u0635\u0644\u0629 \u0628\u062d\u0627\u0633\u0648\u0628\u0643 \u0648\u0623\u0646\u0651\u0643 \u0633\u0645\u062d\u062a \u0644\u0645\u062a\u0635\u0641\u0651\u062d\u0643 \u0628\u0627\u0644\u0627\u062a\u0651\u0635\u0627\u0644 \u0628\u0647\u0627.",
|
||||
@@ -1161,8 +1211,8 @@
|
||||
"Preformatted": "\u0645\u064f\u0646\u0633\u0651\u064e\u0642 \u0645\u0633\u0628\u0642\u064b\u0627",
|
||||
"Prerequisite:": "\u0627\u0644\u0645\u062a\u0637\u0644\u0651\u0628 \u0627\u0644\u0623\u0633\u0627\u0633\u064a:",
|
||||
"Prerequisite: %(prereq_display_name)s": "\u0645\u062a\u0637\u0644\u0651\u0628 \u0623\u0633\u0627\u0633\u064a: %(prereq_display_name)s",
|
||||
"Press UP to enter the speed menu then use the UP and DOWN arrow keys to navigate the different speeds, then press ENTER to change to the selected speed.": "\u0627\u0636\u063a\u0637 \u0632\u0631 \"\u0623\u0639\u0644\u0649\" \u0645\u0646 \u0639\u0644\u0649 \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0644\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0636\u0628\u0637 \u0627\u0644\u0633\u0631\u0639\u0629 \u062b\u0645 \u0627\u0633\u062a\u062e\u062f\u0645 \u0632\u0631 \"\u0627\u0644\u0623\u0639\u0644\u0649\" \u0648\"\u0627\u0644\u0623\u0633\u0641\u0644\" \u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0627\u0644\u0633\u0631\u0639\u0629 \u0627\u0644\u0645\u0646\u0627\u0633\u0628\u0629. \u0644\u062d\u0641\u0638 \u0627\u0644\u0633\u0631\u0639\u0629 \u0627\u0644\u0645\u062e\u062a\u0627\u0631\u0629 \u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0632\u0631 \u0627\u0644\u0625\u0631\u0633\u0627\u0644 \"ENTER\"",
|
||||
"Press the UP arrow key to enter the language menu then use UP and DOWN arrow keys to navigate language options. Press ENTER to change to the selected language.": "\u0627\u0636\u063a\u0637 \u0632\u0631 \"\u0623\u0639\u0644\u0649\" \u0645\u0646 \u0639\u0644\u0649 \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d \u0644\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0644\u063a\u0629 \u062b\u0645 \u0627\u0633\u062a\u062e\u062f\u0645 \u0632\u0631 \"\u0627\u0644\u0623\u0639\u0644\u0649\" \u0648\"\u0627\u0644\u0623\u0633\u0641\u0644\" \u0644\u0627\u062e\u062a\u064a\u0627\u0631 \u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0645\u0646\u0627\u0633\u0628\u0629. \u0644\u062d\u0641\u0638 \u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0645\u062e\u062a\u0627\u0631\u0629 \u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0632\u0631 \u0627\u0644\u0625\u0631\u0633\u0627\u0644 \"ENTER\"",
|
||||
"Press UP to enter the speed menu then use the UP and DOWN arrow keys to navigate the different speeds, then press ENTER to change to the selected speed.": "\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0627\u0644\u0632\u0631 \"\u0623\u0639\u0644\u0649\" \u0644\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0636\u0628\u0637 \u0627\u0644\u0633\u0631\u0639\u0629 \u0648\u0645\u0646 \u062b\u0645 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0632\u0631\u064a\u0651 \u0627\u0644\u0623\u0633\u0647\u0645 \"\u0623\u0639\u0644\u0649\" \u0648\"\u0623\u0633\u0641\u0644\" \u0644\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u064a\u0646 \u0627\u0644\u0633\u0631\u0639\u0627\u062a \u0627\u0644\u0645\u062e\u062a\u0644\u0641\u0629\u060c \u062b\u0645 \u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0632\u0631 \"Enter\" \u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0627\u0644\u0633\u0631\u0639\u0629 \u0627\u0644\u0645\u062e\u062a\u0627\u0631\u0629.",
|
||||
"Press the UP arrow key to enter the language menu then use UP and DOWN arrow keys to navigate language options. Press ENTER to change to the selected language.": "\u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0627\u0644\u0632\u0631 \"\u0623\u0639\u0644\u0649\" \u0644\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0636\u0628\u0637 \u0627\u0644\u0644\u063a\u0629 \u0648\u0645\u0646 \u062b\u0645 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0632\u0631\u064a\u0651 \u0627\u0644\u0623\u0633\u0647\u0645 \"\u0623\u0639\u0644\u0649\" \u0648\"\u0623\u0633\u0641\u0644\" \u0644\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u064a\u0646 \u062e\u064a\u0627\u0631\u0627\u062a \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u062e\u062a\u0644\u0641\u0629\u060c \u062b\u0645 \u0627\u0636\u063a\u0637 \u0639\u0644\u0649 \u0632\u0631 \"Enter\" \u0644\u0627\u0639\u062a\u0645\u0627\u062f \u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0645\u062e\u062a\u0627\u0631\u0629.",
|
||||
"Prev": "\u0627\u0644\u0633\u0627\u0628\u0642",
|
||||
"Prevent students from generating certificates in this course?": "\u0647\u0644 \u062a\u0631\u064a\u062f \u0645\u0646\u0639 \u0627\u0644\u0637\u0644\u0627\u0628 \u0645\u0646 \u0625\u0639\u062f\u0627\u062f \u0634\u0647\u0627\u062f\u0627\u062a \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642\u061f",
|
||||
"Preview": "\u0645\u0639\u0627\u064a\u0646\u0629",
|
||||
@@ -1183,12 +1233,17 @@
|
||||
"Profile": "\u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062e\u0635\u064a",
|
||||
"Profile Image": "\u0635\u0648\u0631\u0629 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0634\u062e\u0635\u064a",
|
||||
"Profile image for {username}": "\u0635\u0648\u0631\u0629 \u0627\u0644\u0635\u0641\u062d\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645 {username}",
|
||||
"Program Certificates": "\u0634\u0647\u0627\u062f\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u062c ",
|
||||
"Program type": "\u0646\u0648\u0639 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c",
|
||||
"Programs": "\u0627\u0644\u0628\u0631\u0627\u0645\u062c",
|
||||
"Promote another member to Admin to remove your admin rights": "\u064a\u064f\u0631\u062c\u0649 \u062a\u0631\u0642\u064a\u0629 \u0639\u0636\u0648 \u0622\u062e\u0631 \u0625\u0644\u0649 \u062f\u0631\u062c\u0629 \u0645\u0634\u0631\u0650\u0641 \u0644\u062a\u062a\u0645\u0643\u0651\u0646 \u0645\u0646 \u0625\u0644\u063a\u0627\u0621 \u062d\u0642\u0648\u0642\u0643 \u0643\u0645\u0634\u0631\u0650\u0641.",
|
||||
"Provisional": "\u0645\u0624\u0642\u062a",
|
||||
"Provisionally Supported": "\u0645\u062f\u0639\u0648\u0645 \u0645\u0624\u0642\u062a\u0627\u064b",
|
||||
"Public": "\u0639\u0627\u0645",
|
||||
"Publish": "\u0646\u0634\u0631",
|
||||
"Publish %(display_name)s": "\u0646\u0634\u0631 %(display_name)s",
|
||||
"Publish all unpublished changes for this %(item)s?": "\u0627\u0646\u0634\u0631 \u0643\u0644\u0651 \u0627\u0644\u062a\u0639\u062f\u064a\u0644\u0627\u062a \u063a\u064a\u0631 \u0627\u0644\u0645\u0646\u0634\u0648\u0631\u0629 \u0644\u0647\u0630\u0647 %(item)s\u061f",
|
||||
"Publish all unpublished changes for this {item}?": "\u0646\u0634\u0631 \u062c\u0645\u064a\u0639 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u063a\u064a\u0631 \u0627\u0644\u0645\u0646\u0634\u0648\u0631\u0629 \u0644\u0647\u0630\u0627 {item}\u061f ",
|
||||
"Publish this program?": "\u0646\u0634\u0631 \u0647\u0630\u0627 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c\u061f",
|
||||
"Publish {display_name}": "\u0646\u0634\u0631 {display_name}",
|
||||
"Published (not yet released)": "\u0646\u064f\u0634\u0631\u062a (\u0644\u0645 \u062a\u064f\u0635\u062f\u0631 \u0628\u0639\u062f)",
|
||||
"Published and Live": "\u0646\u064f\u0634\u0631\u062a \u0648\u0645\u062a\u0627\u062d\u0629 \u0627\u0644\u0622\u0646 \u0639\u0628\u0631 \u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a",
|
||||
"Publishing": "\u062c\u0627\u0631\u064a \u0627\u0644\u0646\u0634\u0631",
|
||||
@@ -1217,10 +1272,12 @@
|
||||
"Released:": "\u0635\u064e\u062f\u064e\u0631:",
|
||||
"Removal is in progress. To avoid errors, stay on this page until the process is complete.": "\u062c\u0627\u0631\u064a \u0627\u0644\u062d\u0630\u0641. \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u0628\u0642\u0627\u0621 \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629 \u062d\u062a\u0649 \u0627\u0633\u062a\u0643\u0645\u0627\u0644 \u0627\u0644\u0639\u0645\u0644\u064a\u0629 \u0644\u062a\u0641\u0627\u062f\u064a \u0648\u0642\u0648\u0639 \u0627\u0644\u0623\u062e\u0637\u0627\u0621.",
|
||||
"Remove": "\u062d\u0630\u0641",
|
||||
"Remove %(name)s from the program": "\u0623\u0632\u0644 %(name)s \u0645\u0646 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c",
|
||||
"Remove chapter %(chapterDisplayName)s": "\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0641\u0635\u0644 %(chapterDisplayName)s",
|
||||
"Remove from Invalidation Table": "\u062d\u0630\u0641 \u0645\u0646 \u062c\u062f\u0648\u0644 \u0639\u0645\u0644\u064a\u0627\u062a \u0627\u0644\u0625\u0644\u063a\u0627\u0621",
|
||||
"Remove from List": "\u062d\u0630\u0641 \u0645\u0646 \u0627\u0644\u0644\u0627\u0626\u062d\u0629",
|
||||
"Remove link": "\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0631\u0627\u0628\u0637",
|
||||
"Remove run %(key)s from the program": "\u0625\u0632\u0627\u0644\u0629 %(key)s \u0627\u0644\u0645\u0633\u0627\u0631 \u0645\u0646 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c ",
|
||||
"Remove subsection %(subsectionDisplayName)s": " \u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a %(subsectionDisplayName)s",
|
||||
"Remove this team member?": "\u0623\u062a\u0648\u0651\u062f \u0627\u0633\u062a\u0628\u0639\u0627\u062f \u0639\u0636\u0648 \u0627\u0644\u0641\u0631\u064a\u0642 \u0647\u0630\u0627\u061f",
|
||||
"Remove unit %(unitName)s": "\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0648\u062d\u062f\u0629 %(unitName)s",
|
||||
@@ -1240,10 +1297,10 @@
|
||||
"Required field": "\u062d\u0642\u0644 \u0645\u0637\u0644\u0648\u0628",
|
||||
"Required field.": "\u062d\u0642\u0644 \u0645\u0637\u0644\u0648\u0628.",
|
||||
"Rescore problem '<%= problem_id %>' for all students?": "\u0625\u0639\u0627\u062f\u0629 \u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u0645\u0633\u0623\u0644\u0629 \u0631\u0642\u0645 \u2019<%= problem_id %>\u2018 \u0644\u0643\u0627\u0641\u0629 \u0627\u0644\u0637\u0644\u0627\u0628\u061f",
|
||||
"Reset Password": "\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631",
|
||||
"Reset Your Password": "\u063a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0633\u0631 \u062d\u0633\u0627\u0628\u0643",
|
||||
"Reset Password": "\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631",
|
||||
"Reset Your Password": "\u063a\u064a\u0651\u0631 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u062d\u0633\u0627\u0628\u0643",
|
||||
"Reset attempts for all students on problem '<%= problem_id %>'?": "\u0625\u0639\u0627\u062f\u0629 \u0636\u0628\u0637 \u0639\u062f\u062f \u0645\u062d\u0627\u0648\u0644\u0627\u062a \u062d\u0644\u0651 \u0627\u0644\u0637\u0644\u0651\u0627\u0628 \u0644\u0644\u0645\u0633\u0623\u0644\u0629 \u0631\u0642\u0645 \u2019<%= problem_id %>\u2018\u061f",
|
||||
"Reset my password": "\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631",
|
||||
"Reset my password": "\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631",
|
||||
"Restore enrollment code": "\u0627\u0633\u062a\u0639\u0627\u062f\u0629 \u0631\u0645\u0632 \u0627\u0644\u062a\u0633\u062c\u064a\u0644",
|
||||
"Restore last draft": "\u0627\u0633\u062a\u0639\u0627\u062f\u0629 \u0622\u062e\u0631 \u0645\u0633\u0648\u062f\u0651\u0629",
|
||||
"Retake Photo": "\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u0642\u0627\u0637 \u0627\u0644\u0635\u0648\u0631\u0629",
|
||||
@@ -1265,8 +1322,10 @@
|
||||
"Row properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0635\u0641",
|
||||
"Row type": "\u0646\u0648\u0639 \u0627\u0644\u0635\u0641",
|
||||
"Rows": "\u0635\u0641\u0648\u0641",
|
||||
"Run %(key)s": " %(key)s \u0627\u0644\u0645\u0633\u0627\u0631",
|
||||
"Save": "\u062d\u0641\u0638",
|
||||
"Save Changes": "\u062d\u0641\u0651\u0638 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a",
|
||||
"Save Course": "\u062d\u0641\u0638 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Save changes": "\u062d\u0641\u0638 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a",
|
||||
"Saved cohort": "\u0627\u0644\u0634\u064f\u0639\u0628 \u0627\u0644\u0645\u062d\u0641\u0648\u0638\u0629",
|
||||
"Saving": "\u064a\u062c\u0631\u064a \u0627\u0644\u062d\u0641\u0638",
|
||||
@@ -1278,20 +1337,27 @@
|
||||
"Search all posts": "\u0627\u0644\u0628\u062d\u062b \u0641\u064a \u0643\u0627\u0641\u0651\u0629 \u0627\u0644\u0645\u0646\u0634\u0648\u0631\u0627\u062a",
|
||||
"Search teams": "\u0628\u062d\u062b \u0641\u064a \u0627\u0644\u0641\u0631\u0642",
|
||||
"Section": "\u0642\u0633\u0645",
|
||||
"Section Visibility": "\u0631\u0624\u064a\u0629 \u0627\u0644\u0642\u0633\u0645",
|
||||
"See all teams in your course, organized by topic. Join a team to collaborate with other learners who are interested in the same topic as you are.": "\u062a\u0641\u0636\u0651\u0644 \u0628\u0627\u0644\u0627\u0637\u0651\u0644\u0627\u0639 \u0639\u0644\u0649 \u062c\u0645\u064a\u0639 \u0627\u0644\u0641\u0631\u0642 \u0641\u064a \u0645\u0633\u0627\u0642\u0643\u060c \u0645\u0631\u062a\u0651\u0628\u0629\u064b \u0628\u062d\u0633\u0628 \u0627\u0644\u0645\u0648\u0636\u0648\u0639. \u0648\u0627\u0646\u0636\u0645 \u0625\u0644\u0649 \u0623\u062d\u062f\u0647\u0627 \u0644\u0644\u062a\u0639\u0627\u0648\u0646 \u0645\u0639 \u0627\u0644\u0645\u062a\u0639\u0644\u0651\u0645\u064a\u0646 \u0627\u0644\u0622\u062e\u0631\u064a\u0646 \u0627\u0644\u0645\u0647\u062a\u0645\u0651\u064a\u0646 \u0628\u0627\u0644\u0645\u062c\u0627\u0644 \u0646\u0641\u0633\u0647 \u0645\u062b\u0644\u0643.",
|
||||
"Select Course Run": "\u0627\u062e\u062a\u0631 \u062a\u0634\u063a\u064a\u0644 \u0644\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629",
|
||||
"Select a Content Group": "\u064a\u064f\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0645\u062c\u0645\u0648\u0639\u0629 \u0645\u062d\u062a\u0648\u0649",
|
||||
"Select a chapter": "\u0627\u062e\u062a\u0631 \u0641\u0635\u0644\u064b\u0627",
|
||||
"Select a cohort": "\u0627\u062e\u062a\u0631 \u0634\u0639\u0628\u0629",
|
||||
"Select a cohort to manage": "\u064a\u064f\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0634\u0639\u0628\u0629 \u0644\u0625\u062f\u0627\u0631\u062a\u0647\u0627.",
|
||||
"Select a prerequisite subsection and enter a minimum score percentage to limit access to this subsection.": "\u0627\u062e\u062a\u0631 \u0642\u0633\u0645 \u0645\u062a\u0637\u0644\u0651\u0628 \u0623\u0633\u0627\u0633\u064a \u0641\u0631\u0639\u064a \u0648\u0623\u062f\u062e\u0644 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0626\u0648\u064a\u0629 \u0627\u0644\u062f\u0646\u064a\u0627 \u0644\u0644\u0645\u062c\u0645\u0648\u0639 \u0644\u0644\u062d\u0651\u062f \u0645\u0646 \u0625\u0645\u0643\u0627\u0646\u064a\u0629 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a.",
|
||||
"Select a time allotment for the exam. If it is over 24 hours, type in the amount of time. You can grant individual learners extra time to complete the exam through the Instructor Dashboard.": "\u0627\u062e\u062a\u0631 \u0641\u062a\u0631\u0629 \u0632\u0645\u0646\u064a\u0629 \u0645\u062e\u0635\u0651\u0635\u0629 \u0644\u0625\u062c\u0631\u0627\u0621 \u0627\u0644\u0627\u0645\u062a\u062d\u0627\u0646. \u0625\u0630\u0627 \u0632\u0627\u062f\u062a \u0627\u0644\u0642\u064a\u0645\u0629 \u0639\u0646 24 \u0633\u0627\u0639\u0629\u060c\u0623\u062f\u062e\u0644 \u0645\u0642\u062f\u0627\u0631\u064b\u0627 \u0645\u0646 \u0627\u0644\u0648\u0642\u062a. \u064a\u0645\u0643\u0646\u0643 \u0643\u0645\u062c \u0645\u062a\u0639\u0644\u0651\u0645\u064a\u0646 \u0645\u062d\u062f\u062f\u064a\u0646 \u0632\u0645\u0646\u064b\u0627 \u0625\u0636\u0627\u0641\u064a\u064b\u0627 \u0644\u0625\u062c\u0631\u0627\u0621 \u0627\u0644\u0627\u0645\u062a\u062d\u0627\u0646 \u0645\u0646 \u062e\u0644\u0627\u0644 \u0644\u0648\u062d\u0629 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0623\u0633\u062a\u0627\u0630.",
|
||||
"Select a type": "\u062d\u062f\u062f \u0646\u0648\u0639\u064b\u0627",
|
||||
"Select all": "\u0627\u062e\u062a\u064a\u0627\u0631 \u0627\u0644\u0643\u0644",
|
||||
"Select an organization": "\u062d\u062f\u062f \u0645\u0646\u0638\u0645\u0629",
|
||||
"Select the course-wide discussion topics that you want to divide by cohort.": "\u064a\u064f\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0645\u0648\u0627\u0636\u064a\u0639 \u0627\u0644\u0646\u0642\u0627\u0634 \u0639\u0644\u0649 \u0646\u0637\u0627\u0642 \u0627\u0644\u0645\u0633\u0627\u0642 \u0627\u0644\u062a\u064a \u062a\u0631\u064a\u062f \u062a\u0648\u0632\u064a\u0639\u0647\u0627 \u0628\u062d\u0633\u0628 \u0627\u0644\u0634\u0639\u0628.",
|
||||
"Select the time zone for displaying course dates. If you do not specify a ": "\u0627\u062e\u062a\u0631 \u0627\u0644\u0645\u0646\u0637\u0642\u0629 \u0627\u0644\u0632\u0645\u0646\u064a\u0629 \u0627\u0644\u062a\u064a \u0633\u062a\u064f\u0639\u0631\u0636 \u062d\u0633\u0628\u0647\u0627 \u062a\u0648\u0627\u0631\u064a\u062e \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062f\u0631\u0627\u0633\u064a\u0629. \u0625\u0646 \u0644\u0645 \u062a\u062d\u062f\u062f ",
|
||||
"Selected tab": "\u0627\u0644\u062a\u0628\u0648\u064a\u0628\u0629 \u0627\u0644\u0645\u0646\u062a\u0642\u0627\u0629",
|
||||
"Send notification to mobile apps": "\u0625\u0631\u0633\u0627\u0644 \u062a\u0646\u0628\u064a\u0647\u0627\u062a \u0625\u0644\u0649 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0647\u0627\u062a\u0641 \u0627\u0644\u062c\u0648\u0627\u0644",
|
||||
"Send push notification to mobile apps": "\u0625\u0631\u0633\u0627\u0644 \u0625\u062e\u0637\u0627\u0631\u0627\u062a \u0644\u062d\u0638\u064a\u0629 \u0625\u0644\u0649 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0647\u0627\u062a\u0641 \u0627\u0644\u062c\u0648\u0627\u0644",
|
||||
"Send to:": "\u0623\u0631\u0633\u0644 \u0625\u0644\u0649: ",
|
||||
"Sent By": "\u0627\u0644\u0645\u0631\u0633\u0650\u0644",
|
||||
"Sent By:": "\u0627\u0644\u0645\u0631\u0633\u0650\u0644:",
|
||||
"Sent To": "\u0645\u064f\u0631\u0633\u0644 \u0625\u0644\u0649",
|
||||
"Sent To:": "\u0627\u0644\u0645\u0631\u0633\u064e\u0644 \u0625\u0644\u064a\u0647:",
|
||||
"Sequence error! Cannot navigate to %(tab_name)s in the current SequenceModule. Please contact the course staff.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623 \u0641\u064a \u0627\u0644\u062a\u0633\u0644\u0633\u0644! \u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0625\u0644\u0649 \u0627\u0644\u062a\u0628\u0648\u064a\u0628 %(tab_name)s \u0641\u064a \u0627\u0644\u0646\u0645\u0648\u0630\u062c \u0627\u0644\u062a\u0633\u0644\u0633\u0644\u064a \u0627\u0644\u062d\u0627\u0644\u064a. \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0637\u0627\u0642\u0645 \u0627\u0644\u0645\u0633\u0627\u0642.",
|
||||
"Server Error, Please refresh the page and try again.": "\u062e\u0637\u0623 \u0641\u064a \u0627\u0644\u0645\u062e\u062f\u0651\u0645\u060c \u064a\u064f\u0631\u062c\u0649 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0635\u0641\u062d\u0629 \u0648\u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629.",
|
||||
@@ -1318,10 +1384,12 @@
|
||||
"Show Discussion": "\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0646\u0642\u0627\u0634",
|
||||
"Show Previews": "\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0645\u0639\u0627\u064a\u0646\u0629",
|
||||
"Show blocks": "\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u062d\u0650\u0632\u064e\u0645",
|
||||
"Show entire subsection": "\u0639\u0631\u0636 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a \u0628\u0627\u0644\u0643\u0627\u0645\u0644",
|
||||
"Show invisible characters": "\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u062e\u0641\u064a\u0651\u0629",
|
||||
"Show me other ways to sign in or register": "\u0625\u0638\u0647\u0627\u0631 \u0648\u0633\u0627\u0626\u0644 \u0623\u062e\u0631\u0649 \u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0623\u0648 \u0644\u0644\u062a\u0633\u062c\u064a\u0644",
|
||||
"Show notes": "\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0645\u0644\u0627\u062d\u0638\u0627\u062a",
|
||||
"Show posts by %(username)s.": "\u0639\u0631\u0636 \u0627\u0644\u0645\u0646\u0634\u0648\u0631\u0627\u062a \u0628\u062d\u0633\u0628 %(username)s.",
|
||||
"Show posts by {username}.": "\u0639\u0631\u0636 \u0645\u0646\u0634\u0648\u0631\u0627\u062a\u0650 \u062d\u0633\u0628 {username}.",
|
||||
"Showing all responses": "\u0625\u0638\u0647\u0627\u0631 \u0643\u0627\u0641\u0629 \u0627\u0644\u0631\u062f\u0648\u062f",
|
||||
"Showing first response": [
|
||||
"\u0639\u0631\u0636 %(numResponses)s \u0631\u062f\u0648\u062f \u0627\u0644\u0623\u0648\u0644\u0649",
|
||||
@@ -1331,9 +1399,16 @@
|
||||
"\u0639\u0631\u0636 %(numResponses)s \u0631\u062f\u0648\u062f \u0627\u0644\u0623\u0648\u0644\u0649",
|
||||
"\u0625\u0638\u0647\u0627\u0631 \u0623\u0648\u0651\u0644 %(numResponses)s \u0631\u062f\u0648\u062f"
|
||||
],
|
||||
"Showing results for \"{searchString}\"": "\u0639\u0631\u0636 \u0646\u062a\u0627\u0626\u062c \"{searchString}\"",
|
||||
"Showing {currentItemRange} out of {totalItemsCount}, filtered by {assetType}, sorted by {sortName} ascending": "\u0639\u0631\u0636 {currentItemRange} \u0645\u0646 \u0623\u0635\u0644 {totalItemsCount} \u0627\u0644\u0645\u0641\u0644\u062a\u0631 \u062d\u0633\u0628 {assetType}\u060c \u0627\u0644\u0645\u0635\u0646\u0641 \u062d\u0633\u0628 {sortName} \u062a\u0635\u0627\u0639\u062f\u064a\u064b\u0627 ",
|
||||
"Showing {currentItemRange} out of {totalItemsCount}, filtered by {assetType}, sorted by {sortName} descending": "\u0639\u0631\u0636 {currentItemRange} \u0645\u0646 \u0623\u0635\u0644 {totalItemsCount} \u0627\u0644\u0645\u0641\u0644\u062a\u0631 \u062d\u0633\u0628 {assetType}\u060c \u0627\u0644\u0645\u0635\u0646\u0641 \u062d\u0633\u0628 {sortName} \u062a\u0646\u0627\u0632\u0644\u064a\u064b\u0627 ",
|
||||
"Showing {currentItemRange} out of {totalItemsCount}, sorted by {sortName} ascending": "\u0639\u0631\u0636 {currentItemRange} \u0645\u0646 \u0623\u0635\u0644 {totalItemsCount} \u0627\u0644\u0645\u0635\u0646\u0641 \u062d\u0633\u0628 {sortName} \u062a\u0635\u0627\u0639\u062f\u064a\u064b\u0627 ",
|
||||
"Showing {currentItemRange} out of {totalItemsCount}, sorted by {sortName} descending": "\u0639\u0631\u0636 {currentItemRange} \u0645\u0646 \u0623\u0635\u0644 {totalItemsCount} \u0627\u0644\u0645\u0635\u0646\u0641 \u062d\u0633\u0628 {sortName} \u062a\u0646\u0627\u0632\u0644\u064a\u064b\u0627 ",
|
||||
"Showing {firstIndex} out of {numItems} total": "\u064a\u064f\u0639\u0631\u0636 \u0627\u0644\u0622\u0646 {firstIndex} \u0645\u0646 \u0623\u0635\u0644 {numItems}.",
|
||||
"Showing {firstIndex}-{lastIndex} out of {numItems} total": "\u064a\u064f\u0639\u0631\u0636 \u0627\u0644\u0622\u0646 {firstIndex}-{lastIndex} \u0645\u0646 \u0623\u0635\u0644 {numItems}.",
|
||||
"Sign in": "\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644",
|
||||
"Sign in here using your email address and password, or use one of the providers listed below.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0648\u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631\u060c \u0623\u0648 \u0645\u0646 \u062e\u0644\u0627\u0644 \u0623\u062d\u062f \u0627\u0644\u0645\u0632\u0648\u0651\u0650\u062f\u064a\u0646 \u0627\u0644\u0645\u0630\u0643\u0648\u0631\u064a\u0646 \u0623\u062f\u0646\u0627\u0647.",
|
||||
"Sign in here using your email address and password.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644\u0643 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0648\u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631.",
|
||||
"Sign in here using your email address and password, or use one of the providers listed below.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0648\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\u060c \u0623\u0648 \u0645\u0646 \u062e\u0644\u0627\u0644 \u0623\u062d\u062f \u0627\u0644\u0645\u0632\u0648\u0651\u0650\u062f\u064a\u0646 \u0627\u0644\u0645\u0630\u0643\u0648\u0631\u064a\u0646 \u0623\u062f\u0646\u0627\u0647.",
|
||||
"Sign in here using your email address and password.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644\u0643 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0648\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631.",
|
||||
"Sign in using %(providerName)s": "\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 %(providerName)s",
|
||||
"Sign in with %(providerName)s": "\u064a\u064f\u0631\u062c\u0649 \u0645\u0646\u0643 \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644\u0643 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 %(providerName)s",
|
||||
"Sign in with Institution/Campus Credentials": "\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0624\u0633\u0651\u0633\u0629/ \u0627\u0644\u062d\u0631\u0645 \u0627\u0644\u062c\u0627\u0645\u0639\u064a",
|
||||
@@ -1341,8 +1416,10 @@
|
||||
"Signatory field(s) has invalid data.": "\u064a\u062d\u062a\u0648\u064a \u062d\u0642\u0644 (\u062d\u0642\u0648\u0644) \u0627\u0644\u0645\u0648\u0642\u0651\u0639 \u0639\u0644\u0649 \u0628\u064a\u0627\u0646\u0627\u062a \u063a\u064a\u0631 \u0635\u0627\u0644\u062d\u0629.",
|
||||
"Signature Image": "\u0635\u0648\u0631\u0629 \u0627\u0644\u062a\u0648\u0642\u064a\u0639",
|
||||
"Skip": "\u062a\u062e\u0637\u0651\u064a ",
|
||||
"Slug used to generate links to the marketing site.": "\u0627\u0644\u0634\u0627\u0631\u0629 \u062a\u0633\u062a\u062e\u062f\u0645 \u0644\u0625\u0646\u0634\u0627\u0621 \u0631\u0648\u0627\u0628\u0637 \u0625\u0644\u0649 \u0627\u0644\u0645\u0648\u0642\u0639 \u0627\u0644\u062a\u0633\u0648\u064a\u0642\u064a.",
|
||||
"Some Rights Reserved": "\u0628\u0639\u0636 \u0627\u0644\u062d\u0642\u0648\u0642 \u0645\u062d\u0641\u0648\u0638\u0629",
|
||||
"Some content in this unit is visible only to particular content groups": "\u0625\u0646\u0651 \u062c\u0632\u0621 \u0645\u0646 \u0645\u062d\u062a\u0648\u0649 \u0647\u0630\u0647 \u0627\u0644\u0648\u062d\u062f\u0629 \u0645\u0631\u0626\u064a \u0641\u0642\u0637 \u0645\u0646 \u0642\u0628\u0644 \u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0645\u062d\u062a\u0648\u0649 \u0645\u0639\u064a\u0651\u0646\u0629. ",
|
||||
"Some images in this post have been omitted": "\u0644\u0642\u062f \u062a\u0645 \u062d\u0630\u0641 \u0628\u0639\u0636 \u0627\u0644\u0635\u0648\u0631 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u0646\u0634\u0648\u0631",
|
||||
"Something went wrong changing this enrollment. Please try again.": "\u062d\u062f\u062b \u062e\u0637\u0623 \u0623\u062b\u0646\u0627\u0621 \u062a\u063a\u064a\u064a\u0631 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0647\u0630\u0647. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629.",
|
||||
"Sorry": "\u0639\u0630\u0631\u064b\u0627",
|
||||
"Sorry, no results were found.": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0627 \u062a\u0648\u062c\u062f \u0623\u064a \u0646\u062a\u0627\u0626\u062c.",
|
||||
@@ -1361,9 +1438,10 @@
|
||||
"Square": "\u0645\u0631\u0628\u0651\u0639",
|
||||
"Staff": "\u0637\u0627\u0642\u0645 \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"Staff Only": "\u0637\u0627\u0642\u0645 \u0627\u0644\u0645\u0633\u0627\u0642 \u0641\u0642\u0637",
|
||||
"Staff and Students": "\u0637\u0627\u0642\u0645 \u0627\u0644\u0645\u0633\u0627\u0642 \u0648\u0627\u0644\u0637\u0644\u0651\u0627\u0628",
|
||||
"Staff and Learners": "\u0627\u0644\u0645\u0648\u0638\u0641\u0648\u0646 \u0648\u0627\u0644\u0645\u062a\u0639\u0644\u0645\u0648\u0646",
|
||||
"Start": "\u0627\u0644\u0628\u062f\u0621",
|
||||
"Start Date": "\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0628\u062f\u0621",
|
||||
"Start Date: %(date)s": "\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0628\u062f\u0621: %(date)s",
|
||||
"Start generating certificates for all students in this course?": "\u0647\u0644 \u062a\u0631\u064a\u062f \u0627\u0644\u0628\u062f\u0621 \u0628\u0625\u0639\u062f\u0627\u062f \u0627\u0644\u0634\u0647\u0627\u062f\u0627\u062a \u0644\u062c\u0645\u064a\u0639 \u0627\u0644\u0637\u0644\u0651\u0627\u0628 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642\u061f",
|
||||
"Start of transcript. Skip to the end.": "\u0628\u062f\u0627\u064a\u0629 \u0627\u0644\u0646\u0635. \u062a\u062e\u0637 \u0625\u0644\u0649 \u0627\u0644\u0646\u0647\u0627\u064a\u0629.",
|
||||
"Start regenerating certificates for students in this course?": "\u0647\u0644 \u062a\u0648\u062f\u0651 \u0645\u0639\u0627\u0648\u062f\u0629 \u0627\u0644\u0628\u062f\u0621 \u0628\u0625\u0639\u062f\u0627\u062f \u0627\u0644\u0634\u0647\u0627\u062f\u0627\u062a \u0644\u0637\u0644\u0651\u0627\u0628 \u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642\u061f",
|
||||
@@ -1372,6 +1450,7 @@
|
||||
"Started entrance exam rescore task for student '{student_id}'. Click the 'Show Background Task History for Student' button to see the status of the task.": "\u0628\u062f\u0623\u062a \u0645\u0647\u0645\u0651\u0629 \u0625\u0639\u0627\u062f\u0629 \u062a\u0642\u064a\u064a\u0645 \u0627\u0645\u062a\u062d\u0627\u0646 \u0627\u0644\u062f\u062e\u0648\u0644 \u0644\u0644\u0637\u0627\u0644\u0628 '{student_id}'. \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0632\u0631 \u2019\u0639\u0631\u0636 \u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0645\u0647\u0627\u0645\u0651 \u0627\u0644\u0633\u0627\u0628\u0642\u0629 \u0644\u0644\u0637\u0627\u0644\u0628\u2018 \u0644\u0644\u0627\u0637\u0651\u0644\u0627\u0639 \u0639\u0644\u0649 \u062d\u0627\u0644\u0629 \u0627\u0644\u0645\u0647\u0645\u0629.",
|
||||
"Started rescore problem task for problem '<%= problem_id %>' and student '<%= student_id %>'. Click the 'Show Background Task History for Student' button to see the status of the task.": "\u0628\u062f\u0621 \u0645\u0647\u0645\u0651\u0629 \u0625\u0639\u0627\u062f\u0629 \u062a\u0642\u064a\u064a\u0645 \u0627\u0644\u0645\u0633\u0623\u0644\u0629 \u0631\u0642\u0645 \u2019<%= problem_id %>\u2018 \u0644\u0644\u0637\u0627\u0644\u0628 \u0635\u0627\u062d\u0628 \u0627\u0644\u0631\u0642\u0645 \u2019<%= student_id %>\u2018. \u064a\u0645\u0643\u0646 \u0627\u0644\u0636\u063a\u0637 \u0639\u0644\u0649 \u0632\u0631 \u2019\u0625\u0638\u0647\u0627\u0631 \u0633\u062c\u0644 \u0627\u0644\u0645\u0647\u0645\u0627\u062a \u0644\u0644\u0637\u0627\u0644\u0628\u2018 \u0644\u0644\u0627\u0637\u0651\u0644\u0627\u0639 \u0639\u0644\u0649 \u062d\u0627\u0644\u0629 \u0627\u0644\u0645\u0647\u0645\u0629.",
|
||||
"Starts": "\u0627\u0644\u0628\u062f\u0627\u064a\u0629",
|
||||
"Starts %(start)s": "\u064a\u0628\u062f\u0623 \u0628\u062a\u0627\u0631\u064a\u062e %(start)s",
|
||||
"Starts: %(start)s": "\u064a\u0628\u062f\u0623: %(start)s",
|
||||
"Starts: %(start_date)s": "\u064a\u0628\u062f\u0623 \u0628\u062a\u0627\u0631\u064a\u062e:%(start_date)s",
|
||||
"State": "\u0627\u0644\u062d\u0627\u0644\u0629",
|
||||
@@ -1380,7 +1459,7 @@
|
||||
"Strikethrough": "\u062e\u0637 \u0634\u0637\u0628 ",
|
||||
"Student": "\u0627\u0644\u0637\u0627\u0644\u0628",
|
||||
"Student Removed from certificate white list successfully.": "\u062c\u0631\u062a \u0625\u0632\u0627\u0644\u0629 \u0627\u0633\u0645 \u0627\u0644\u0637\u0627\u0644\u0628 \u0645\u0646 \u0634\u0647\u0627\u062f\u0627\u062a \u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0628\u064a\u0636\u0627\u0621 \u0628\u0646\u062c\u0627\u062d.",
|
||||
"Student Visibility": "\u0642\u0627\u0628\u0644\u064a\u0629 \u0627\u0644\u0631\u0624\u064a\u0629 \u0628\u0627\u0644\u0646\u0633\u0628\u0629 \u0644\u0644\u0637\u0644\u0651\u0627\u0628",
|
||||
"Student email or username": "\u0627\u0633\u0645 \u0623\u0648 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0637\u0627\u0644\u0628 \u0627\u0644\u0628\u0631\u064a\u062f\u064a",
|
||||
"Student username/email field is required and can not be empty. ": "\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645/\u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u062e\u0627\u0635 \u0628\u0627\u0644\u0637\u0627\u0644\u0628 \u0645\u0637\u0644\u0648\u0628 \u0648\u0644\u0627 \u064a\u0645\u0643\u0646 \u062a\u0631\u0643\u0647 \u0634\u0627\u063a\u0631\u064b\u0627.",
|
||||
"Studio's having trouble saving your work": "\u064a\u0648\u0627\u062c\u0647 \u0646\u0638\u0627\u0645 Studio \u0635\u0639\u0648\u0628\u0629 \u0641\u064a \u062d\u0641\u0638 \u0639\u0645\u0644\u0643 ",
|
||||
"Studio:": "\u0627\u0633\u062a\u0648\u062f\u064a\u0648:",
|
||||
@@ -1393,6 +1472,9 @@
|
||||
"Submitted": "\u062c\u0631\u0649 \u0627\u0644\u062a\u0642\u062f\u064a\u0645",
|
||||
"Subscript": "\u0631\u0645\u0632 \u0633\u0641\u0644\u064a",
|
||||
"Subsection": "\u0642\u0633\u0645\u064c \u0641\u0631\u0639\u064a\u0651",
|
||||
"Subsection Visibility": "\u0631\u0624\u064a\u0629 \u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a",
|
||||
"Subsection is hidden after due date": "\u0627\u0644\u0642\u0633\u0645 \u0627\u0644\u0641\u0631\u0639\u064a \u0645\u062e\u0641\u064a \u0628\u0639\u062f \u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0645\u062d\u062f\u062f",
|
||||
"Subtitle": "\u0639\u0646\u0648\u0627\u0646 \u0641\u0631\u0639\u064a",
|
||||
"Success": "\u062c\u0631\u062a \u0627\u0644\u0639\u0645\u0644\u064a\u0629 \u0628\u0646\u062c\u0627\u062d",
|
||||
"Success! Problem attempts reset for problem '<%= problem_id %>' and student '<%= student_id %>'.": "\u0631\u0627\u0626\u0639! \u062c\u0631\u0649 \u0625\u0639\u0627\u062f\u0629 \u0636\u0628\u0637 \u0639\u062f\u062f \u0645\u062d\u0627\u0648\u0644\u0627\u062a \u062d\u0644\u0651 \u0627\u0644\u0645\u0633\u0623\u0644\u0629 \u0631\u0642\u0645 \u2019<%= problem_id %>\u2018 \u0644\u0644\u0637\u0627\u0644\u0628 \u0635\u0627\u062d\u0628 \u0627\u0644\u0631\u0642\u0645 \u2019<%= student_id %>\u2018. ",
|
||||
"Successfully deleted student state for user {user}": "\u062c\u0631\u0649 \u0628\u0646\u062c\u0627\u062d \u062d\u0630\u0641 \u062d\u0627\u0644\u0629 \u0627\u0644\u0637\u0627\u0644\u0628 \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645 {user}.",
|
||||
@@ -1406,6 +1488,8 @@
|
||||
"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.": "\u062c\u0631\u0649 \u0628\u0646\u062c\u0627\u062d \u0628\u062f\u0621 \u0645\u0647\u0645\u0629 \u0625\u0639\u0627\u062f\u0629 \u0636\u0628\u0637 \u0639\u062f\u062f \u0645\u062d\u0627\u0648\u0644\u0627\u062a \u062d\u0644\u0651 \u0627\u0644\u0645\u0633\u0623\u0644\u0629 \u0631\u0642\u0645 \u2019<%= problem_id %>\u2018. \u064a\u0645\u0643\u0646 \u0627\u0644\u0636\u063a\u0637 \u0639\u0644\u0649 \u0632\u0631 \u2019\u0625\u0638\u0647\u0627\u0631 \u0633\u062c\u0644 \u0627\u0644\u0645\u0647\u0645\u0627\u062a \u0627\u0644\u0633\u0627\u0628\u0642\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0627\u0644\u0645\u0633\u0623\u0644\u0629\u2018 \u0644\u0644\u0627\u0637\u0651\u0644\u0627\u0639 \u0639\u0644\u0649 \u062d\u0627\u0644\u0629 \u0627\u0644\u0645\u0647\u0645\u0629.",
|
||||
"Successfully unlinked.": "\u0646\u062c\u062d \u0641\u0635\u0644 \u0627\u0644\u0631\u0628\u0637",
|
||||
"Superscript": "\u0646\u0635/\u0631\u0645\u0632/\u0631\u0642\u0645 \u0639\u064f\u0644\u0648\u064a",
|
||||
"Supported": "\u0645\u062f\u0639\u0645",
|
||||
"TOTAL": "\u0627\u0644\u0645\u062c\u0645\u0648\u0639 \u0627\u0644\u0643\u0644\u064a",
|
||||
"Table": "\u062c\u062f\u0648\u0644",
|
||||
"Table properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u062c\u062f\u0648\u0644",
|
||||
"Tags": "\u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062a",
|
||||
@@ -1442,6 +1526,7 @@
|
||||
"Textbook Name": "\u0627\u0633\u0645 \u0627\u0644\u0643\u062a\u0627\u0628 ",
|
||||
"Textbook information": "\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0639\u0646 \u0627\u0644\u0643\u062a\u0627\u0628 ",
|
||||
"Textbook name is required": "\u0627\u0633\u0645 \u0627\u0644\u0643\u062a\u0627\u0628 \u0645\u0637\u0644\u0648\u0628",
|
||||
"Thank you %(full_name)s! We have received your payment for %(course_name)s.": "\u0634\u0643\u0631\u0627\u064b \u062c\u0632\u064a\u0644\u0627\u064b %(full_name)s! \u0644\u0642\u062f \u0627\u0633\u062a\u0644\u0645\u0646\u0627 \u0627\u0644\u0645\u0628\u0644\u063a \u0627\u0644\u0630\u064a \u0633\u062f\u062f\u062a\u0647 \u0644\u0642\u0627\u0621 \u0645\u0634\u0627\u0631\u0643\u062a\u0643 \u0641\u064a %(course_name)s.",
|
||||
"Thank you for submitting your financial assistance application for {course_name}! You can expect a response in 2-4 business days.": "\u0646\u0634\u0643\u0631\u0643 \u0644\u062a\u0642\u062f\u064a\u0645\u0643 \u0637\u0644\u0628 \u062f\u0639\u0645 \u0645\u0627\u0644\u064a \u0644\u0644\u0645\u0633\u0627\u0642 {course_name}! \u064a\u0645\u0643\u0646\u0643 \u0623\u0646 \u062a\u062a\u0648\u0642\u0639 \u0627\u0633\u062a\u0644\u0627\u0645 \u0627\u0644\u0631\u062f\u0651 \u062e\u0644\u0627\u0644 2-4 \u0623\u064a\u0627\u0645 \u0639\u0645\u0644.",
|
||||
"Thank you for submitting your photos. We will review them shortly. You can now sign up for any %(platformName)s course that offers verified certificates. Verification is good for one year. After one year, you must submit photos for verification again.": "\u0634\u0643\u0631\u064b\u0627 \u0644\u0643 \u0639\u0644\u0649 \u062a\u0642\u062f\u064a\u0645 \u0635\u0648\u0631\u0643. \u0633\u0646\u0631\u0627\u062c\u0639\u0647\u0627 \u0642\u0631\u064a\u0628\u064b\u0627. \u0648\u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u0622\u0646 \u062a\u0633\u062c\u064a\u0644 \u0639\u0636\u0648\u064a\u062a\u0643 \u0641\u064a \u0623\u064a\u064b \u0645\u0646 \u0645\u0633\u0627\u0642\u0627\u062a %(platformName)s \u0627\u0644\u062a\u064a \u062a\u0645\u0646\u062d \u0634\u0647\u0627\u062f\u0627\u062a \u0645\u0648\u062b\u0651\u0651\u064e\u0642\u0629. \u0648\u0628\u064a\u0646\u0645\u0627 \u064a\u0633\u0631\u064a \u0645\u0641\u0639\u0648\u0644 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0644\u0645\u062f\u0651\u0629 \u0639\u0627\u0645\u060c \u064a\u062c\u0628 \u0623\u0646 \u062a\u0642\u062f\u0651\u0645 \u0627\u0644\u0635\u0648\u0631 \u0644\u0644\u062a\u062d\u0642\u0651\u0642 \u0645\u0646\u0647\u0627 \u0645\u062c\u062f\u0651\u062f\u064b\u0627 \u0628\u0639\u062f \u0627\u0646\u0642\u0636\u0627\u0621 \u0627\u0644\u0639\u0627\u0645. ",
|
||||
"Thank you! We have received your payment for {courseName}.": "\u0634\u0643\u0631\u0627\u064b \u0644\u0643! \u0644\u0642\u062f \u0627\u0633\u062a\u0644\u0645\u0646\u0627 \u0645\u062f\u0641\u0648\u0639\u0627\u062a\u0643 \u0644\u0640{courseName}",
|
||||
@@ -1483,14 +1568,21 @@
|
||||
"The number of assignments of this type that will be dropped. The lowest scoring assignments are dropped first.": "\u0633\u064a\u062c\u0631\u064a \u062a\u062e\u0641\u064a\u0636 \u0639\u062f\u062f \u0627\u0644\u0645\u0647\u0627\u0645 \u0645\u0646 \u0647\u0630\u0627 \u0627\u0644\u0646\u0648\u0639. \u0633\u064a\u062a\u0645 \u0625\u0644\u063a\u0627\u0621 \u0627\u0644\u0645\u0647\u0627\u0645 \u0630\u0627\u062a \u0623\u0642\u0644 \u0645\u062c\u0645\u0648\u0639 \u062f\u0631\u062c\u0627\u062a \u0623\u0648\u0644\u064b\u0627.",
|
||||
"The number of subsections in the course that contain problems of this assignment type.": "\u0639\u062f\u062f \u0627\u0644\u0623\u0642\u0633\u0627\u0645 \u0627\u0644\u0641\u0631\u0639\u064a\u0629 \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642\u060c \u0627\u0644\u062a\u064a \u062a\u062a\u0636\u0645\u0646 \u0645\u0633\u0627\u0626\u0644 \u0644\u0645\u0647\u0645\u0651\u0629 \u0645\u0646 \u0647\u0630\u0627 \u0627\u0644\u0646\u0648\u0639.",
|
||||
"The organization that this signatory belongs to, as it should appear on certificates.": "\u0627\u0644\u0645\u0624\u0633\u0651\u0633\u0629 \u0627\u0644\u062a\u064a \u064a\u0646\u062a\u0645\u064a \u0625\u0644\u064a\u0647\u0627 \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0642\u0651\u0650\u0639\u060c \u0643\u0645\u0627 \u064a\u062c\u0628 \u0623\u0646 \u062a\u0638\u0647\u0631 \u0639\u0644\u0649 \u0627\u0644\u0634\u0647\u0627\u062f\u0627\u062a.",
|
||||
"The page \"{route}\" could not be found.": "\u0627\u0644\u0635\u0641\u062d\u0629 \"{route}\" \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f\u0629.",
|
||||
"The photo of your face matches the photo on your ID.": "\u0623\u0646 \u062a\u0637\u0627\u0628\u0642 \u0627\u0644\u0635\u0648\u0631\u0629 \u0639\u0644\u0649 \u0628\u0637\u0627\u0642\u062a\u0643 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u0635\u0648\u0631\u0629 \u0648\u062c\u0647\u0643. ",
|
||||
"The public display name of the program.": "\u0627\u0633\u0645 \u0627\u0644\u0639\u0631\u0636 \u0627\u0644\u0639\u0627\u0645 \u0644\u0644\u0628\u0631\u0646\u0627\u0645\u062c.",
|
||||
"The raw error message is:": "\u0646\u0635 \u0631\u0633\u0627\u0644\u0629 \u0627\u0644\u062e\u0637\u0623 \u0647\u064a:",
|
||||
"The selected content group does not exist": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0645\u0646\u062a\u0642\u0627\u0629 \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f\u0629",
|
||||
"The team \"{team}\" could not be found.": "\u0627\u0644\u0641\u0631\u064a\u0642 \"{team}\" \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f.",
|
||||
"The thread you selected has been deleted. Please select another thread.": "\u062c\u0631\u0649 \u062d\u0630\u0641 \u0627\u0644\u0645\u0648\u0636\u0648\u0639 \u0627\u0644\u0630\u064a \u0627\u062e\u062a\u0631\u062a\u0647. \u064a\u064f\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0645\u0648\u0636\u0648\u0639 \u0622\u062e\u0631.",
|
||||
"The timed transcript for the first video file does not appear to be the same as the timed transcript for the second video file.": "\u064a\u0628\u062f\u0648 \u0623\u0646\u0651 \u0627\u0644\u0646\u0635 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0644\u0645\u0644\u0641 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u0623\u0648\u0651\u0644 \u064a\u062e\u062a\u0644\u0641 \u0639\u0646 \u0627\u0644\u0646\u0635 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0644\u0645\u0644\u0641 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u062b\u0627\u0646\u064a.",
|
||||
"The timed transcript for this video on edX is out of date, but YouTube has a current timed transcript for this video.": "\u064a\u0631\u062a\u0628\u0637 \u0645\u0642\u0637\u0639 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0647\u0630\u0627\u060c \u0641\u064a EdX\u060c \u0628\u0646\u0635 \u0642\u062f\u064a\u0645 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0631\u063a\u0645 \u062a\u0648\u0641\u0651\u0631 \u0646\u0635 \u0623\u062d\u062f\u062b \u0644\u0645\u0642\u0637\u0639 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0630\u0627\u062a\u0647\u060c \u0639\u0644\u0649 \u0645\u0648\u0642\u0639 \u064a\u0648\u062a\u064a\u0648\u0628.",
|
||||
"The title entered here will override the title set for the individual run of the course. It will be displayed on the XSeries progress page and in marketing presentations.": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0633\u062c\u0644 \u0647\u0646\u0627 \u0633\u0648\u0641 \u064a\u062a\u062c\u0627\u0648\u0632 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0645\u0636\u0628\u0648\u0637 \u0644\u0644\u0645\u0633\u0627\u0631 \u0627\u0644\u0641\u0631\u062f\u064a \u0644\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629. \u0633\u064a\u062a\u0645 \u0639\u0631\u0636\u0647 \u0639\u0644\u0649 \u0635\u0641\u062d\u0629 \u062a\u0642\u062f\u0645 XSeries \u0641\u064a \u0627\u0644\u0639\u0631\u0648\u0636 \u0627\u0644\u062a\u0633\u0648\u064a\u0642\u064a\u0629.",
|
||||
"The topic \"{topic}\" could not be found.": "\u0627\u0644\u0645\u0648\u0636\u0648\u0639 \"{topic}\" \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f.",
|
||||
"The unique number that identifies your course within your organization, e.g. CS101.": "\u0627\u0644\u0631\u0642\u0645 \u0627\u0644\u0641\u0631\u064a\u062f \u0627\u0644\u0630\u064a \u064a\u062d\u062f\u062f \u062f\u0648\u0631\u062a\u0643 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629 \u062f\u0627\u062e\u0644 \u0645\u0646\u0638\u0645\u062a\u0643\u060c \u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644 CS101.",
|
||||
"The weight of all assignments of this type as a percentage of the total grade, for example, 40. Do not include the percent symbol.": "\u0648\u0632\u0646 \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0647\u0627\u0645 \u0645\u0646 \u0647\u0630\u0627 \u0627\u0644\u0646\u0648\u0639 \u0643\u0646\u0633\u0628\u0629 \u0645\u0626\u0648\u064a\u0629 \u0644\u0644\u062f\u0631\u062c\u0629 \u0627\u0644\u0646\u0647\u0627\u0626\u064a\u0629\u060c \u0645\u062b\u0644\u060c 40. \u064a\u062c\u0628 \u0639\u062f\u0645 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0631\u0645\u0632 \u0627\u0644\u0646\u0633\u0628\u0629 \u0627\u0644\u0645\u0626\u0648\u064a\u0629.",
|
||||
"The {cohortGroupName} cohort has been created. You can manually add students to this cohort below.": "\u0646\u062c\u062d \u0625\u0646\u0634\u0627\u0621 \u0634\u0639\u0628\u0629 {cohortGroupName}. \u0648\u064a\u0645\u0643\u0646\u0643 \u0623\u0646 \u062a\u0636\u064a\u0641 \u0627\u0644\u0637\u0644\u0651\u0627\u0628 \u0628\u0646\u0641\u0633\u0643 \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0634\u0639\u0628\u0629 \u0623\u062f\u0646\u0627\u0647.",
|
||||
"There are invalid keywords in your email. Check the following keywords and try again.": "\u062a\u0648\u062c\u062f \u0628\u0639\u0636 \u0627\u0644\u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0645\u0641\u062a\u0627\u062d\u064a\u0629 \u0627\u0644\u062e\u0627\u0637\u0626\u0629 \u0641\u064a \u0628\u0631\u064a\u062f\u0643. \u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0643\u0644\u0645\u0627\u062a \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u0648\u062d\u0627\u0648\u0644 \u0645\u0631\u0629 \u0622\u062e\u0631\u0649.",
|
||||
"There has been a failure to export to XML at least one component. It is recommended that you go to the edit page and repair the error before attempting another export. Please check that all components on the page are valid and do not display any error messages.": "\u062a\u0639\u0630\u0651\u0631 \u062a\u0635\u062f\u064a\u0631 \u0645\u0643\u0648\u0651\u0650\u0646 \u0648\u0627\u062d\u062f \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644 \u0625\u0644\u0649 \u0635\u064a\u063a\u0629 XML. \u0644\u0630\u0627 \u0646\u0642\u062a\u0631\u062d \u0639\u0644\u064a\u0643 \u0627\u0644\u0630\u0647\u0627\u0628 \u0625\u0644\u0649 \u0635\u0641\u062d\u0629 \u0627\u0644\u062a\u0639\u062f\u064a\u0644 \u0644\u0625\u0635\u0644\u0627\u062d \u0627\u0644\u062e\u0637\u0623 \u0642\u0628\u0644 \u0645\u062d\u0627\u0648\u0644\u0629 \u0627\u0644\u0642\u064a\u0627\u0645 \u0628\u062a\u0635\u062f\u064a\u0631 \u0622\u062e\u0631. \u0648\u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u062d\u0651\u0629 \u062c\u0645\u064a\u0639 \u0627\u0644\u0645\u0643\u0648\u0651\u0646\u0627\u062a \u0627\u0644\u0645\u0648\u062c\u0648\u062f\u0629 \u0641\u064a \u0627\u0644\u0635\u0641\u062d\u0629 \u0648\u0645\u0646 \u0623\u0646\u0651\u0647\u0627 \u0644\u0627 \u062a\u062d\u0648\u064a \u0623\u064a\u0651 \u0631\u0633\u0627\u0626\u0644 \u062e\u0637\u0623. ",
|
||||
"There has been an error processing your survey.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623 \u0641\u064a \u0645\u0639\u0627\u0644\u062c\u0629 \u0627\u0633\u062a\u0628\u064a\u0627\u0646\u0643.",
|
||||
"There has been an error while exporting.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623 \u062e\u0644\u0627\u0644 \u0627\u0644\u062a\u0635\u062f\u064a\u0631.",
|
||||
@@ -1521,6 +1613,7 @@
|
||||
"There was an error, try searching again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623\u060c \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0628\u062d\u062b \u0645\u062c\u062f\u0651\u062f\u064b\u0627.",
|
||||
"There were errors reindexing course.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u0623\u062e\u0637\u0627\u0621 \u0641\u064a \u0625\u0639\u0627\u062f\u0629 \u0641\u0647\u0631\u0633\u0629 \u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0645\u0633\u0627\u0642.",
|
||||
"There's already another assignment type with this name.": "\u064a\u0648\u062c\u062f \u0645\u0633\u0628\u0642\u064b\u0627 \u0646\u0648\u0639 \u0622\u062e\u0631 \u0645\u0646 \u0627\u0644\u0648\u0627\u062c\u0628\u0627\u062a \u0628\u0647\u0630\u0627 \u0627\u0644\u0627\u0633\u0645.",
|
||||
"These settings include basic information about your account. You can also specify additional information and see your linked social accounts on this page.": "\u062a\u062a\u0636\u0645\u0651\u0646 \u0647\u0630\u0647 \u0627\u0644\u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0623\u0633\u0627\u0633\u064a\u0629 \u0639\u0646 \u062d\u0633\u0627\u0628\u0643\u060c \u0648\u064a\u0645\u0643\u0646\u0643 \u0623\u064a\u0636\u064b\u0627 \u0625\u062f\u062e\u0627\u0644 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0625\u0636\u0627\u0641\u064a\u0629 \u0648\u0631\u0624\u064a\u0629 \u062d\u0633\u0627\u0628\u0627\u062a \u0627\u0644\u062a\u0648\u0627\u0635\u0644 \u0627\u0644\u0627\u062c\u062a\u0645\u0627\u0639\u064a \u062e\u0627\u0635\u062a\u0643 \u0627\u0644\u0645\u0631\u0628\u0648\u0637\u0629 \u0645\u0639 \u062d\u0633\u0627\u0628\u0643.",
|
||||
"These users were not added as beta testers:": "\u0644\u0645 \u064a\u064f\u0636\u064e\u0641 \u0647\u0624\u0644\u0627\u0621 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0648\u0646 \u0625\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0623\u0639\u0636\u0627\u0621 \u0645\u062e\u062a\u0628\u0631\u064a \u0627\u0644\u0646\u0633\u062e\u0629 \u0627\u0644\u062a\u062c\u0631\u064a\u0628\u064a\u0629:",
|
||||
"These users were not affiliated with the course so could not be unenrolled:": "\u0644\u0645 \u064a\u0643\u0646 \u0647\u0624\u0644\u0627\u0621 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0648\u0646 \u0645\u0646\u062a\u0633\u0628\u064a\u0646 \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0642 \u0648\u0628\u0627\u0644\u062a\u0627\u0644\u064a \u062a\u0639\u0630\u0651\u0631 \u0625\u0644\u063a\u0627\u0621 \u062a\u0633\u062c\u064a\u0644\u0647\u0645:",
|
||||
"These users were not removed as beta testers:": "\u0644\u0645 \u064a\u064f\u062d\u0630\u064e\u0641 \u0647\u0624\u0644\u0627\u0621 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0645\u0646 \u0642\u0627\u0626\u0645\u0629 \u0623\u0639\u0636\u0627\u0621 \u0645\u062e\u062a\u0628\u0631\u064a \u0627\u0644\u0646\u0633\u062e\u0629 \u0627\u0644\u062a\u062c\u0631\u064a\u0628\u064a\u0629:",
|
||||
@@ -1540,16 +1633,16 @@
|
||||
"\u062a\u062a\u0636\u0645\u0651\u0646 \u0647\u0630\u0647 \u0627\u0644\u0645\u0644\u0627\u062d\u0638\u0629 \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a\u0629 %(count)s \u0625\u0628\u0644\u0627\u063a\u0627\u062a. "
|
||||
],
|
||||
"This browser cannot play .mp4, .ogg, or .webm files.": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u0644\u0647\u0630\u0627 \u0627\u0644\u0645\u062a\u0635\u0641\u0651\u062d \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0645\u0644\u0641\u0651\u0627\u062a \u0627\u0644\u062a\u064a \u062a\u062d\u0645\u0644 \u0627\u0644\u0644\u0627\u062d\u0642\u0629 .mp4 \u0623\u0648 .ogg \u0623\u0648 .webm.",
|
||||
"This catalog's courses:": "\u0645\u0633\u0627\u0642\u0627\u062a \u0647\u0630\u0627 \u0627\u0644\u0643\u062a\u0627\u0644\u0648\u062c:",
|
||||
"This catalog's courses:": "\u0627\u0644\u062f\u0648\u0631\u0627\u062a \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0647\u0630\u0627 \u0627\u0644\u0643\u062a\u0627\u0644\u0648\u062c:",
|
||||
"This certificate has already been activated and is live. Are you sure you want to continue editing?": "\u0647\u0630\u0647 \u0627\u0644\u0634\u0647\u0627\u062f\u0629 \u0646\u0634\u0637\u0629\u064f \u0648\u0645\u0648\u062c\u0648\u062f\u0629\u064f \u0628\u0627\u0644\u0641\u0639\u0644! \u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0645\u0646 \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u0627\u0644\u0627\u0633\u062a\u0645\u0631\u0627\u0631\u061f",
|
||||
"This component has validation issues.": "\u0647\u0646\u0627\u0643 \u0625\u0634\u0643\u0627\u0644\u0627\u062a \u0641\u064a \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0645\u0643\u0648\u0651\u0650\u0646.",
|
||||
"This configuration is currently used in content experiments. If you make changes to the groups, you may need to edit those experiments.": "\u0647\u0630\u0627 \u0627\u0644\u0625\u0639\u062f\u0627\u062f \u0645\u0633\u062a\u062e\u062f\u0645 \u062d\u0627\u0644\u064a\u0651\u064b\u0627 \u0641\u064a \u0627\u062e\u062a\u0628\u0627\u0631\u0627\u062a \u0627\u0644\u0645\u062d\u062a\u0648\u0649. \u0642\u062f \u062a\u062d\u062a\u0627\u062c \u0644\u062a\u0639\u062f\u064a\u0644 \u0647\u0630\u0647 \u0627\u0644\u0625\u062e\u062a\u0628\u0627\u0631\u0627\u062a \u0641\u064a \u062d\u0627\u0644 \u0625\u062f\u062e\u0644\u062a \u0623\u064a \u062a\u0639\u062f\u0651\u064a\u0644\u0627\u062a \u0639\u0644\u0649 \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0627\u062a.",
|
||||
"This content group is not in use. Add a content group to any unit from the {linkStart}Course Outline{linkEnd}.": "\u0625\u0646\u0651 \u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0647\u0630\u0647 \u0644\u064a\u0633\u062a \u0642\u064a\u062f \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645. \u064a\u064f\u0631\u062c\u0649 \u0625\u0636\u0627\u0641\u0629 \u0645\u062c\u0645\u0648\u0639\u0629 \u0645\u062d\u062a\u0648\u0649 \u0625\u0644\u0649 \u0623\u064a \u0648\u062d\u062f\u0629 \u0645\u0646 \u062e\u0644\u0627\u0644 {linkStart}\u0646\u0628\u0630\u0629 \u0639\u0646 \u0627\u0644\u0645\u0633\u0627\u0642{linkEnd}.",
|
||||
"This content group is used in one or more units.": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0647\u0630\u0647 \u0645\u0633\u062a\u062e\u062f\u0645\u0629 \u0641\u064a \u0648\u062d\u062f\u0629 \u0648\u0627\u062d\u062f\u0629 \u0623\u0648 \u0623\u0643\u062b\u0631.",
|
||||
"This content group is used in:": "\u062a\u064f\u0633\u062a\u062e\u062f\u064e\u0645 \u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0647\u0630\u0647 \u0641\u064a:",
|
||||
"This course has automatic cohorting enabled for verified track learners, but cohorts are disabled. You must enable cohorts for the feature to work.": "\u062a\u0645 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642 \u062a\u0645\u0643\u064a\u0646 \u0646\u0638\u0627\u0645 \u062a\u0643\u0648\u064a\u0646 \u0627\u0644\u0634\u0639\u0628 \u0627\u0644\u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0627\u0644\u0645\u062b\u0628\u062a\u064a\u0646 \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0631\u060c \u0648\u0644\u0643\u0646 \u062a\u0645 \u062a\u0639\u0637\u064a\u0644 \u0627\u0644\u0634\u0639\u0628. \u064a\u062c\u0628 \u0639\u0644\u064a\u0643 \u062a\u0641\u0639\u064a\u0644 \u0627\u0644\u0634\u0639\u0628 \u062d\u062a\u0649 \u062a\u0639\u0645\u0644 \u0647\u0630\u0647 \u0627\u0644\u062e\u0627\u0635\u064a\u0629.",
|
||||
"This course has automatic cohorting enabled for verified track learners, but the required cohort does not exist. You must create a manually-assigned cohort named '{verifiedCohortName}' for the feature to work.": "\u062a\u0645 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642 \u062a\u0645\u0643\u064a\u0646 \u0646\u0638\u0627\u0645 \u062a\u0643\u0648\u064a\u0646 \u0627\u0644\u0634\u0639\u0628 \u0627\u0644\u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0627\u0644\u0645\u062b\u0628\u062a\u064a\u0646 \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0631\u060c \u0648\u0644\u0643\u0646 \u0627\u0644\u0634\u0639\u0628\u0629 \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f\u0629. \u064a\u062c\u0628 \u0639\u0644\u064a\u0643 \u0625\u0646\u0634\u0627\u0621 '{verifiedCohortName}' \u0628\u0627\u0633\u0645 \u0645\u062c\u0645\u0648\u0639\u0629 \u0645\u062e\u0635\u0635 \u064a\u062f\u0648\u064a\u0627\u064b \u062d\u062a\u0649 \u062a\u0639\u0645\u0644 \u0647\u0630\u0647 \u0627\u0644\u062e\u0627\u0635\u064a\u0629.",
|
||||
"This course uses automatic cohorting for verified track learners. You cannot disable cohorts, and you cannot rename the manual cohort named '{verifiedCohortName}'. To change the configuration for verified track cohorts, contact your edX partner manager.": "\u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642 \u064a\u0642\u0648\u0645 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0646\u0638\u0627\u0645 \u062a\u0643\u0648\u064a\u0646 \u0634\u0639\u0628 \u0628\u0634\u0643\u0644 \u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0627\u0644\u0645\u062b\u0628\u062a\u064a\u0646 \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0631. \u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u062a\u0639\u0637\u064a\u0644 \u0627\u0644\u0634\u0639\u0628\u060c \u0648\u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u062a\u063a\u064a\u064a\u0631 \u0627\u0633\u0645 \u0627\u0644\u0634\u0639\u0628\u0629 \u0627\u0644\u064a\u062f\u0648\u064a\u0629 \u0627\u0644\u062a\u064a \u062a\u0633\u0645\u0649 {verifiedCohortName}'. \u0644\u062a\u063a\u064a\u064a\u0631 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0634\u0639\u0628 \u0627\u0644\u0645\u062b\u0628\u062a\u0629 \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0631\u060c \u0627\u062a\u0635\u0644 \u0628\u0645\u062f\u064a\u0631 \u0634\u0631\u0643\u0627\u0621 \u0625\u062f\u0631\u0627\u0643 \u0627\u0644\u0630\u064a \u062a\u062a\u0639\u0627\u0645\u0644 \u0645\u0639\u0647.",
|
||||
"This course has automatic cohorting enabled for verified track learners, but cohorts are disabled. You must enable cohorts for the feature to work.": "\u062a\u0645 \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629 \u062a\u0645\u0643\u064a\u0646 \u0646\u0638\u0627\u0645 \u062a\u0643\u0648\u064a\u0646 \u0627\u0644\u0634\u0639\u0628 \u0627\u0644\u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0627\u0644\u0645\u062b\u0628\u062a\u064a\u0646 \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0631\u060c \u0648\u0644\u0643\u0646 \u062a\u0645 \u062a\u0639\u0637\u064a\u0644 \u0627\u0644\u0634\u0639\u0628. \u064a\u062c\u0628 \u0639\u0644\u064a\u0643 \u062a\u0641\u0639\u064a\u0644 \u0627\u0644\u0634\u0639\u0628 \u062d\u062a\u0649 \u062a\u0639\u0645\u0644 \u0647\u0630\u0647 \u0627\u0644\u062e\u0627\u0635\u064a\u0629.",
|
||||
"This course has automatic cohorting enabled for verified track learners, but the required cohort does not exist. You must create a manually-assigned cohort named '{verifiedCohortName}' for the feature to work.": "\u062a\u0645 \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629 \u062a\u0645\u0643\u064a\u0646 \u0646\u0638\u0627\u0645 \u062a\u0643\u0648\u064a\u0646 \u0627\u0644\u0634\u0639\u0628 \u0627\u0644\u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0627\u0644\u0645\u062b\u0628\u062a\u064a\u0646 \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0631\u060c \u0648\u0644\u0643\u0646 \u0627\u0644\u0634\u0639\u0628\u0629 \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 \u063a\u064a\u0631 \u0645\u0648\u062c\u0648\u062f\u0629. \u064a\u062c\u0628 \u0639\u0644\u064a\u0643 \u0625\u0646\u0634\u0627\u0621 \u0634\u0639\u0628\u0629 \u0645\u0639\u064a\u0646\u0629 \u064a\u062f\u0648\u064a\u064b\u0627 \u0628\u0627\u0633\u0645 '{verifiedCohortName}' \u062d\u062a\u0649 \u062a\u0639\u0645\u0644 \u0647\u0630\u0647 \u0627\u0644\u062e\u0627\u0635\u064a\u0629.",
|
||||
"This course uses automatic cohorting for verified track learners. You cannot disable cohorts, and you cannot rename the manual cohort named '{verifiedCohortName}'. To change the configuration for verified track cohorts, contact your edX partner manager.": "\u0647\u0630\u0647 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629 \u062a\u0633\u062a\u062e\u062f\u0645 \u0646\u0638\u0627\u0645 \u062a\u0643\u0648\u064a\u0646 \u0634\u0639\u0628 \u0628\u0634\u0643\u0644 \u062a\u0644\u0642\u0627\u0626\u064a \u0644\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0627\u0644\u0645\u062b\u0628\u062a\u064a\u0646 \u0641\u064a \u0627\u0644\u0645\u0633\u0627\u0631. \u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u062a\u0639\u0637\u064a\u0644 \u0627\u0644\u0634\u0639\u0628 \u0648\u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u0634\u0639\u0628\u0629 \u0627\u0644\u064a\u062f\u0648\u064a\u0629 \u0628\u0627\u0633\u0645 '{verifiedCohortName}'. \u0644\u062a\u063a\u064a\u064a\u0631 \u0627\u0644\u062a\u0643\u0648\u064a\u0646 \u0644\u0634\u0639\u0628 \u0627\u0644\u0645\u0633\u0627\u0631 \u0627\u0644\u0645\u062b\u0628\u062a\u060c \u0627\u062a\u0635\u0644 \u0628\u0645\u062f\u064a\u0631 \u0627\u0644\u0634\u0631\u064a\u0643 edX \u0627\u0644\u062e\u0627\u0635 \u0628\u0643. ",
|
||||
"This image is for decorative purposes only and does not require a description.": "\u0627\u0633\u062a\u064f\u062e\u062f\u0645\u062a \u0647\u0630\u0647 \u0627\u0644\u0635\u0648\u0631\u0629 \u0644\u0623\u0647\u062f\u0627\u0641 \u062a\u0632\u064a\u0646\u064a\u0629 \u0641\u0642\u0637 \u0648\u0644\u0627 \u062a\u062a\u0637\u0644\u0651\u0628 \u062a\u0648\u0635\u064a\u0641\u064b\u0627.",
|
||||
"This is the Description of the Group Configuration": "\u0625\u0646\u0647 \u0648\u0635\u0641 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0629",
|
||||
"This is the Name of the Group Configuration": "\u0625\u0646\u0647 \u0627\u0633\u0645 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0629",
|
||||
@@ -1559,6 +1652,7 @@
|
||||
"This link will open in a modal window": "\u0633\u064a\u0641\u062a\u062d \u0647\u0630\u0627 \u0627\u0644\u0631\u0627\u0628\u0637 \u0641\u064a \u0646\u0627\u0641\u0630\u0629 \u0645\u0646\u0628\u062b\u0642\u0629 \u062c\u062f\u064a\u062f\u0629.",
|
||||
"This link will open in a new browser window/tab": "\u0633\u064a\u0641\u062a\u062d \u0647\u0630\u0627 \u0627\u0644\u0631\u0627\u0628\u0637 \u0641\u064a \u0646\u0627\u0641\u0630\u0629 \u0645\u062a\u0635\u0641\u0651\u062d \u062c\u062f\u064a\u062f\u0629/\u062a\u0628\u0648\u064a\u0628\u0629 \u062c\u062f\u064a\u062f\u0629",
|
||||
"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.": "\u0642\u062f \u064a\u064f\u0639\u0632\u0649 \u0647\u0630\u0627 \u0625\u0644\u0649 \u062d\u062f\u0648\u062b \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0627\u0644\u062e\u0627\u062f\u0645 \u0644\u062f\u064a\u0646\u0627 \u0623\u0648 \u0641\u064a \u0627\u062a\u0651\u0635\u0627\u0644\u0643 \u0628\u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a. \u064a\u064f\u0631\u062c\u0649 \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0635\u0641\u062d\u0629 \u0623\u0648 \u0627\u0644\u062a\u0623\u0643\u0651\u062f \u0645\u0646 \u0627\u062a\u0651\u0635\u0627\u0644\u0643 \u0628\u0627\u0644\u0625\u0646\u062a\u0631\u0646\u062a.",
|
||||
"This page contains information about orders that you have placed with {platform_name}.": "\u062a\u062d\u062a\u0648\u064a \u0647\u0630\u0647 \u0627\u0644\u0635\u0641\u062d\u0629 \u0639\u0644\u0649 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0639\u0646 \u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0634\u0631\u0627\u0621 \u0627\u0644\u062a\u064a \u0642\u0645\u062a \u0628\u0647\u0627 \u0641\u064a {platform_name}.",
|
||||
"This post is visible only to %(group_name)s.": "\u0647\u0630\u0627 \u0627\u0644\u0645\u0646\u0634\u0648\u0631 \u0645\u0631\u0626\u064a\u0651\u064c \u0641\u0642\u0637 \u0644\u0640 %(group_name)s.",
|
||||
"This post is visible to everyone.": "\u0647\u0630\u0627 \u0627\u0644\u0645\u0646\u0634\u0648\u0631 \u0645\u0631\u0626\u064a\u0651\u064c \u0644\u0644\u062c\u0645\u064a\u0639.",
|
||||
"This short name for the assignment type (for example, HW or Midterm) appears next to assignments on a learner's Progress page.": "\u064a\u0638\u0647\u0631 \u0627\u0644\u0627\u0633\u0645 \u0627\u0644\u0645\u062e\u062a\u0635\u0631 \u0644\u0646\u0648\u0639 \u0627\u0644\u0645\u0647\u0645\u0651\u0629 (\u0645\u062b\u0644 HW \u0623\u0648 Midterm) \u0628\u062c\u0627\u0646\u0628 \u0627\u0644\u0645\u0647\u0627\u0645 \u0641\u064a \u0635\u0641\u062d\u0629 \u0627\u0644\u062a\u0637\u0648\u0651\u0631 \u0627\u0644\u062e\u0627\u0635\u0651\u0629 \u0628\u0627\u0644\u0645\u062a\u0639\u0644\u0651\u0645.",
|
||||
@@ -1568,6 +1662,7 @@
|
||||
"Time Allotted (HH:MM):": "\u0627\u0644\u0648\u0642\u062a \u0627\u0644\u0645\u062e\u0635\u0651\u064e\u0635 (HH:MM): ",
|
||||
"Time Sent": "\u0648\u0642\u062a \u0627\u0644\u0625\u0631\u0633\u0627\u0644",
|
||||
"Time Sent:": "\u0648\u0642\u062a \u0627\u0644\u0625\u0631\u0633\u0627\u0644:",
|
||||
"Time Zone": "\u0627\u0644\u0645\u0646\u0637\u0642\u0629 \u0627\u0644\u0632\u0645\u0646\u064a\u0629",
|
||||
"Timed": "\u0645\u0624\u0642\u0651\u062a",
|
||||
"Timed Exam": "\u0627\u0645\u062a\u062d\u0627\u0646 \u0645\u0648\u0642\u0648\u062a",
|
||||
"Timed Transcript Conflict": "\u062a\u0636\u0627\u0631\u0628 \u0636\u0645\u0646 \u0627\u0644\u0646\u0635 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a",
|
||||
@@ -1618,6 +1713,7 @@
|
||||
"Unfollow": "\u0625\u0644\u063a\u0627\u0621 \u0627\u0644\u0645\u062a\u0627\u0628\u0639\u0629",
|
||||
"Ungraded": "\u0644\u0645 \u064a\u062c\u0631\u064a \u062a\u0642\u064a\u064a\u0645\u0647",
|
||||
"Unit": "\u0627\u0644\u0648\u062d\u062f\u0629",
|
||||
"Unit Visibility": "\u0631\u0624\u064a\u0629 \u0627\u0644\u0648\u062d\u062f\u0629",
|
||||
"Unknown": "\u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641 ",
|
||||
"Unknown Error Occurred.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623 \u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641. ",
|
||||
"Unknown user: {user}": "\u0645\u0633\u062a\u062e\u062f\u0645 \u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641: {user}",
|
||||
@@ -1640,6 +1736,7 @@
|
||||
"Updating Tags": "\u062a\u062d\u062f\u064a\u062b \u0627\u0644\u0634\u064e\u0627\u0631\u0627\u062a",
|
||||
"Updating with latest library content": "\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u062d\u062f\u064a\u062b \u0645\u0639 \u0645\u0633\u062a\u062c\u062f\u0651\u0627\u062a \u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0645\u0643\u062a\u0628\u0629",
|
||||
"Upgrade Deadline": "\u0627\u0644\u0645\u0648\u0639\u062f \u0627\u0644\u0646\u0647\u0627\u0626\u064a \u0644\u0644\u062a\u062d\u062f\u064a\u062b ",
|
||||
"Upgrade Now": "\u0637\u0648\u0651\u0631 \u0627\u0634\u062a\u0631\u0627\u0643\u0643 \u0627\u0644\u0622\u0646",
|
||||
"Upgrade to a Verified Certificate for {courseName}": "\u0637\u0648\u0631 \u0625\u0644\u0649 \u0634\u0647\u0627\u062f\u0629 \u0645\u0646 \u0645\u0639\u062a\u0645\u062f\u0629 \u0625\u0644\u0649 {courseName}",
|
||||
"Upload": "\u062a\u062d\u0645\u064a\u0644",
|
||||
"Upload File": "\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641",
|
||||
@@ -1650,7 +1747,8 @@
|
||||
"Upload PDF": "\u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0628\u0635\u064a\u063a\u0629 PDF",
|
||||
"Upload Photo": "\u0631\u0641\u0639 \u0635\u0648\u0631\u0629",
|
||||
"Upload Signature Image": "\u062a\u062d\u0645\u064a\u0644 \u0635\u0648\u0631\u0629 \u0627\u0644\u062a\u0648\u0642\u064a\u0639",
|
||||
"Upload a comma separated values (.csv) file that contains the usernames or email addresses of learners who have been given exceptions. Include the username or email address in the first comma separated field. You can include an optional note describing the reason for the exception in the second comma separated field.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0628\u0635\u064a\u063a\u0629 (.csv) \u0630\u0627 \u0642\u064a\u0645 \u0645\u0641\u0635\u0648\u0644\u0629 \u0628\u0631\u0645\u0632 \u0627\u0644\u0641\u0627\u0635\u0644\u0629\u060c \u064a\u062d\u0648\u064a \u0627\u0633\u0645\u0627\u0621 \u0648\u0639\u0646\u0627\u0648\u064a\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0627\u0644\u0645\u062a\u0639\u0644\u0651\u0645\u064a\u0646 \u0627\u0644\u062d\u0627\u0635\u0644\u064a\u0646 \u0639\u0644\u0649 \u0627\u0633\u062a\u062b\u0646\u0627\u0621\u0627\u062a. \u0636\u0645\u0651\u0646 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0648\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0641\u064a \u0627\u0644\u062d\u0642\u0644 \u0627\u0644\u0623\u0648\u0644 \u0627\u0644\u0645\u0641\u0635\u0648\u0644 \u0628\u0641\u0627\u0635\u0644\u0629. \u064a\u0645\u0643\u0646\u0643 \u062a\u0636\u0645\u064a\u0646 \u0645\u0644\u0627\u062d\u0638\u0629 \u0627\u062e\u062a\u064a\u0627\u0631\u064a\u0629 \u062a\u0635\u0641 \u0633\u0628\u0628 \u0645\u0646\u062d \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621 \u0641\u064a \u0627\u0644\u062d\u0642\u0644 \u0627\u0644\u062b\u0627\u0646\u064a \u0627\u0644\u0645\u0641\u0635\u0648\u0644 \u0628\u0641\u0627\u0635\u0644\u0629. ",
|
||||
"Upload a CSV file": "\u0627\u0631\u0641\u0639 \u0645\u0644\u0641 CSV",
|
||||
"Upload a comma separated values (.csv) file that contains the usernames or email addresses of learners who have been given exceptions. Include the username or email address in the first comma separated field. You can include an optional note describing the reason for the exception in the second comma separated field.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0628\u0635\u064a\u063a\u0629 (.csv) \u0630\u0627 \u0642\u064a\u0645 \u0645\u0641\u0635\u0648\u0644\u0629 \u0628\u0631\u0645\u0632 \u0627\u0644\u0641\u0627\u0635\u0644\u0629\u060c \u064a\u062d\u0648\u064a \u0623\u0633\u0645\u0627\u0621 \u0648\u0639\u0646\u0627\u0648\u064a\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0627\u0644\u0645\u062a\u0639\u0644\u0651\u0645\u064a\u0646 \u0627\u0644\u062d\u0627\u0635\u0644\u064a\u0646 \u0639\u0644\u0649 \u0627\u0633\u062a\u062b\u0646\u0627\u0621\u0627\u062a. \u0636\u0645\u0651\u0646 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0648\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0641\u064a \u0627\u0644\u062d\u0642\u0644 \u0627\u0644\u0623\u0648\u0644 \u0627\u0644\u0645\u0641\u0635\u0648\u0644 \u0628\u0641\u0627\u0635\u0644\u0629. \u064a\u0645\u0643\u0646\u0643 \u062a\u0636\u0645\u064a\u0646 \u0645\u0644\u0627\u062d\u0638\u0629 \u0627\u062e\u062a\u064a\u0627\u0631\u064a\u0629 \u062a\u0635\u0641 \u0633\u0628\u0628 \u0645\u0646\u062d \u0627\u0644\u0627\u0633\u062a\u062b\u0646\u0627\u0621 \u0641\u064a \u0627\u0644\u062d\u0642\u0644 \u0627\u0644\u062b\u0627\u0646\u064a \u0627\u0644\u0645\u0641\u0635\u0648\u0644 \u0628\u0641\u0627\u0635\u0644\u0629. ",
|
||||
"Upload a new PDF to \u201c<%= name %>\u201d": "\u062d\u0645\u0651\u0644 \u0645\u0644\u0641 PDF \u062c\u062f\u064a\u062f \u0625\u0644\u0649 \u201c<%= name %>\u201d.",
|
||||
"Upload an image": "\u062a\u062d\u0645\u064a\u0644 \u0635\u0648\u0631\u0629",
|
||||
"Upload an image or capture one with your web or phone camera.": "\u064a\u064f\u0631\u062c\u0649 \u062a\u062d\u0645\u064a\u0644 \u0635\u0648\u0631\u0629 \u0623\u0648 \u0627\u0644\u062a\u0642\u0627\u0637 \u0648\u0627\u062d\u062f\u0629 \u0628\u0643\u0627\u0645\u064a\u0631\u062a\u0643 \u0623\u0648 \u0643\u0627\u0645\u064a\u0631\u0627 \u0627\u0644\u0647\u0627\u062a\u0641. ",
|
||||
@@ -1722,7 +1820,9 @@
|
||||
"VideoPlayer: Element corresponding to the given selector was not found.": "\u0645\u0634\u063a\u0651\u0644 \u0627\u0644\u0641\u064a\u062f\u064a\u0648: \u0646\u0623\u0633\u0641 \u0644\u062a\u0639\u0630\u0651\u0631 \u0625\u064a\u062c\u0627\u062f \u0627\u0644\u0639\u0646\u0635\u0631 \u0627\u0644\u0645\u062a\u0648\u0627\u0641\u0642 \u0645\u0639 \u0623\u062f\u0627\u0629 \u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0621 \u0627\u0644\u0645\u062d\u062f\u0651\u062f\u0629.",
|
||||
"View": "\u0639\u0631\u0636",
|
||||
"View %(span_start)s %(team_name)s %(span_end)s": "\u0645\u0634\u0627\u0647\u062f\u0629 %(span_start)s %(team_name)s %(span_end)s",
|
||||
"View Archived Course": "\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0627\u0644\u0645\u0633\u0627\u0642",
|
||||
"View Cohort": "\u0645\u0634\u0627\u0647\u062f\u0629 \u0627\u0644\u0634\u0639\u0628\u0629",
|
||||
"View Course": "\u0627\u0633\u062a\u0639\u0631\u0636 \u0627\u0644\u0645\u0633\u0627\u0642 ",
|
||||
"View Live": "\u0639\u0631\u0636 \u0627\u0644\u0646\u0633\u062e\u0629 \u0627\u0644\u062d\u0627\u0644\u064a\u0629 \u0627\u0644\u0645\u0646\u0634\u0648\u0631\u0629",
|
||||
"View Teams in the %(topic_name)s Topic": "\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0627\u0644\u0641\u0650\u0631\u0642 \u0641\u064a \u0645\u0648\u0636\u0648\u0639 %(topic_name)s",
|
||||
"View all errors": "\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0643\u0627\u0641\u0629 \u0627\u0644\u0623\u062e\u0637\u0627\u0621",
|
||||
@@ -1744,6 +1844,7 @@
|
||||
"Want to confirm your identity later?": "\u0647\u0644 \u062a\u0631\u064a\u062f \u062a\u0623\u0643\u064a\u062f \u0647\u0648\u064a\u0651\u062a\u0643 \u0644\u0627\u062d\u0642\u064b\u0627\u061f",
|
||||
"Warning": "\u062a\u062d\u0630\u064a\u0631",
|
||||
"Warnings": "\u062a\u062d\u0630\u064a\u0631\u0627\u062a",
|
||||
"We ask you to activate your account to ensure it is really you creating the account and to prevent fraud.": "\u0646\u0637\u0644\u0628 \u062a\u0641\u0639\u064a\u0644 \u0627\u0644\u062d\u0633\u0627\u0628 \u0644\u0646\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u0635\u0627\u062d\u0628 \u0627\u0644\u062d\u0633\u0627\u0628 \u0647\u0648 \u0645\u0646 \u064a\u0642\u0648\u0645 \u0628\u0625\u0646\u0634\u0627\u0626\u0647\u060c \u0648\u0630\u0644\u0643 \u064a\u0633\u0627\u0639\u062f \u0643\u062b\u064a\u0631\u0627\u064b \u0641\u064a \u062a\u062c\u0646\u0628 \u0627\u0644\u0627\u062d\u062a\u064a\u0627\u0644 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.",
|
||||
"We couldn't create your account.": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0645 \u0646\u062a\u0645\u0643\u0651\u0646 \u0645\u0646 \u0625\u0646\u0634\u0627\u0621 \u062d\u0633\u0627\u0628\u0643. ",
|
||||
"We couldn't find any results for \"%s\".": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0645 \u0646\u062c\u062f \u0623\u064a \u0646\u062a\u0627\u0626\u062c \u0644\u0640\"%s\".",
|
||||
"We couldn't sign you in.": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0645 \u0646\u062a\u0645\u0643\u0651\u0646 \u0645\u0646 \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644\u0643. ",
|
||||
@@ -1758,6 +1859,7 @@
|
||||
"We had some trouble marking this response as an answer. Please try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u062a\u062d\u062f\u064a\u062f \u0647\u0630\u0627 \u0627\u0644\u0631\u062f \u0639\u0644\u0649 \u0623\u0646\u0651\u0647 \u0625\u062c\u0627\u0628\u0629. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629.",
|
||||
"We had some trouble marking this response endorsed. Please try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u062a\u062d\u062f\u064a\u062f \u0647\u0630\u0627 \u0627\u0644\u0631\u062f \u0639\u0644\u0649 \u0623\u0646\u0651\u0647 \u0645\u0635\u062f\u0651\u0642. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629. ",
|
||||
"We had some trouble pinning this thread. Please try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u062a\u062b\u0628\u064a\u062a \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0636\u0648\u0639. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629.",
|
||||
"We had some trouble processing your request. Please ensure you have copied any ": "\u0643\u0627\u0646 \u0644\u062f\u064a\u0646\u0627 \u0628\u0639\u0636 \u0627\u0644\u0645\u0634\u0627\u0643\u0644 \u0641\u064a \u0645\u0639\u0627\u0644\u062c\u0629 \u0637\u0644\u0628\u0643. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u062a\u0623\u0643\u062f \u0645\u0646 \u0627\u0644\u0627\u0646\u062a\u0647\u0627\u0621 \u0645\u0646 \u0646\u0633\u062e \u0623\u064a",
|
||||
"We had some trouble processing your request. Please ensure you have copied any unsaved work and then reload the page.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0645\u0639\u0627\u0644\u062c\u0629 \u0637\u0644\u0628\u0643. \u0631\u062c\u0627\u0621\u064b \u062a\u0623\u0643\u0651\u062f \u0645\u0646 \u0646\u0633\u062e\u0643 \u0644\u0623\u064a \u0645\u0648\u0627\u062f \u063a\u064a\u0631 \u0645\u062d\u0641\u0651\u0638\u0629 \u0628\u0639\u062f\u060c \u062b\u0645\u0651 \u0623\u0639\u062f \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0635\u0641\u062d\u0629.",
|
||||
"We had some trouble processing your request. Please try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0645\u0639\u0627\u0644\u062c\u0629 \u0637\u0644\u0628\u0643. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629.",
|
||||
"We had some trouble removing this endorsement. Please try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0625\u0644\u063a\u0627\u0621 \u0647\u0630\u0647 \u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629. ",
|
||||
@@ -1770,13 +1872,14 @@
|
||||
"We had some trouble unpinning this thread. Please try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0625\u0644\u063a\u0627\u0621 \u062a\u062b\u0628\u064a\u062a \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0636\u0648\u0639. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629.",
|
||||
"We had some trouble unsubscribing you from this thread. Please try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0625\u0644\u063a\u0627\u0621 \u062a\u0633\u062c\u064a\u0644\u0643 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0636\u0648\u0639. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629.",
|
||||
"We have received your information and are verifying your identity. You will see a message on your dashboard when the verification process is complete (usually within 1-2 days). In the meantime, you can still access all available course content.": "\u0644\u0642\u062f \u0627\u0633\u062a\u0644\u0645\u0646\u0627 \u0645\u0639\u0644\u0648\u0645\u0627\u062a\u0643 \u0648\u0646\u062a\u0648\u0644\u0651\u0649 \u062d\u0627\u0644\u064a\u064b\u0627 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0645\u0646 \u0647\u0648\u064a\u062a\u0643. \u0633\u062a\u0635\u0644\u0643 \u0631\u0633\u0627\u0644\u0629 \u0639\u0644\u0649 \u0644\u0648\u062d\u0629 \u0645\u0639\u0644\u0648\u0645\u0627\u062a\u0643 \u0639\u0646\u062f \u0627\u0643\u062a\u0645\u0627\u0644 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 (\u0639\u0627\u062f\u0629\u064b \u062e\u0644\u0627\u0644 1-2 \u0623\u064a\u0627\u0645). \u0648\u064a\u0645\u0643\u0646\u0643 \u0641\u064a \u0627\u0644\u0648\u0642\u062a \u0627\u0644\u0631\u0627\u0647\u0646 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0643\u0627\u0641\u0629 \u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0645\u0633\u0627\u0642 \u0627\u0644\u0645\u064f\u062a\u0627\u062d\u0629.",
|
||||
"We just need a little more information before you start learning with %(platformName)s.": "\u0646\u062d\u062a\u0627\u062c \u0641\u0642\u0637 \u0625\u0644\u0649 \u0642\u0644\u064a\u0644 \u0645\u0646 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0625\u0636\u0627\u0641\u064a\u0629 \u0642\u0628\u0644 \u0623\u0646 \u062a\u0628\u062f\u0623 \u0628\u0627\u0644\u062a\u0639\u0644\u0651\u0645 \u0645\u0639 %(platformName)s. ",
|
||||
"We have sent an email message with password reset instructions to the email address you provided. If you do not receive this message, {anchorStart}contact technical support{anchorEnd}.": "\u0644\u0642\u062f \u0642\u0645\u0646\u0627 \u0628\u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u0629 \u0628\u0631\u064a\u062f \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0645\u0639 \u0625\u0631\u0634\u0627\u062f\u0627\u062a \u0625\u0639\u0627\u062f\u0629 \u062a\u0639\u064a\u064a\u0646 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631 \u0625\u0644\u0649 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u0630\u064a \u0642\u062f\u0645\u062a\u0647. \u0625\u0630\u0627 \u0644\u0645 \u062a\u062a\u0644\u0642 \u0647\u0630\u0647 \u0627\u0644\u0631\u0633\u0627\u0644\u0629\u060c {anchorStart}\u0627\u062a\u0635\u0644 \u0628\u0627\u0644\u062f\u0639\u0645 \u0627\u0644\u062a\u0642\u0646\u064a{anchorEnd}.",
|
||||
"We just need a little more information before you start learning with %(platformName)s.": "\u0646\u062d\u062a\u0627\u062c \u0641\u0642\u0637 \u0625\u0644\u0649 \u0642\u0644\u064a\u0644 \u0645\u0646 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u0625\u0636\u0627\u0641\u064a\u0629 \u0642\u0628\u0644 \u0623\u0646 \u062a\u0628\u062f\u0623 \u0627\u0644\u062a\u0639\u0644\u0651\u0645 \u0645\u0639 %(platformName)s. ",
|
||||
"We use the highest levels of security available to encrypt your photo and send it to our authorization service for review. Your photo and information are not saved or visible anywhere on %(platformName)s after the verification process is complete.": "\u0646\u0633\u062a\u062e\u062f\u0645 \u0623\u0639\u0644\u0649 \u0645\u0633\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0623\u0645\u0646 \u0627\u0644\u0645\u062a\u0648\u0641\u0651\u0631\u0629 \u0644\u062a\u0634\u0641\u064a\u0631 \u0635\u0648\u0631\u062a\u0643 \u0648\u0625\u0631\u0633\u0627\u0644\u0647\u0627 \u0625\u0644\u0649 \u0642\u0633\u0645\u0646\u0627 \u0627\u0644\u0645\u0633\u0624\u0648\u0644 \u0639\u0646 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0644\u0645\u0631\u0627\u062c\u0639\u062a\u0647\u0627. \u0648\u064a\u064f\u0631\u062c\u0649 \u0645\u0644\u0627\u062d\u0638\u0629 \u0623\u0646\u0651 \u0635\u0648\u0631\u062a\u0643 \u0648\u0645\u0639\u0644\u0648\u0645\u0627\u062a\u0643 \u0644\u0627 \u062a\u064f\u062d\u0641\u0651\u064e\u0638 \u0623\u0648 \u062a\u0638\u0647\u0631 \u0641\u064a \u0623\u064a \u0645\u0643\u0627\u0646 \u0639\u0644\u0649 \u0645\u0646\u0635\u0651\u0629 %(platformName)s \u0628\u0639\u062f \u0623\u0646 \u062a\u064f\u0633\u062a\u0643\u0645\u0644 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642.",
|
||||
"We weren't able to send you a password reset email.": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0645 \u0646\u062a\u0645\u0643\u0651\u0646 \u0645\u0646 \u0645\u0631\u0627\u0633\u0644\u062a\u0643 \u0639\u0628\u0631 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631. ",
|
||||
"We weren't able to send you a password reset email.": "\u0639\u0630\u0631\u064b\u0627\u060c \u0644\u0645 \u0646\u062a\u0645\u0643\u0651\u0646 \u0645\u0646 \u0645\u0631\u0627\u0633\u0644\u062a\u0643 \u0639\u0628\u0631 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0644\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631. ",
|
||||
"We're sorry, there was an error": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623. ",
|
||||
"We've encountered an error. Refresh your browser and then try again.": "\u0646\u0623\u0633\u0641 \u0644\u062d\u062f\u0648\u062b \u062e\u0637\u0623. \u064a\u064f\u062c\u0631\u0649 \u0625\u0639\u0627\u062f\u0629 \u0641\u062a\u062d \u0645\u062a\u0635\u0641\u0651\u062d\u0643 \u062b\u0645\u0651 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629.",
|
||||
"We've sent a confirmation message to {new_email_address}. Click the link in the message to update your email address.": "\u0644\u0642\u062f \u0642\u0645\u0646\u0627 \u0628\u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u0629 \u062a\u0623\u0643\u064a\u062f \u0625\u0644\u0649 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a {new_email_address}. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0645\u062a\u0627\u062d \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0644\u062a\u062d\u062f\u064a\u062b \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.",
|
||||
"We've sent instructions for resetting your password to the email address you provided.": "\u0623\u0631\u0633\u0644\u0646\u0627 \u0644\u0643 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0644\u0627\u0632\u0645\u0629 \u0644\u062a\u0639\u064a\u062f \u0636\u0628\u0637 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631\u0643 \u0644\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u0630\u064a \u062d\u062f\u0651\u062f\u062a\u0647. ",
|
||||
"We've sent a message to {email_address}. Click the link in the message to reset your password.": "\u0644\u0642\u062f \u0642\u0645\u0646\u0627 \u0628\u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u0629 \u0625\u0644\u0649 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a {email_address}. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0644\u0646\u0642\u0631 \u0639\u0644\u0649 \u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0645\u0648\u062c\u0648\u062f \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0644\u0625\u0639\u0627\u062f\u0629 \u0636\u0628\u0637 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631.",
|
||||
"Web:": "\u0627\u0644\u0648\u064a\u0628:",
|
||||
"Webcam": "\u0643\u0627\u0645\u064a\u0631\u0627 \u0627\u0644\u0648\u064a\u0628 ",
|
||||
"Weight of Total Grade": "\u0648\u0632\u0646 \u0627\u0644\u062f\u0631\u062c\u0629 \u0627\u0644\u0625\u062c\u0645\u0627\u0644\u064a\u0629",
|
||||
@@ -1784,15 +1887,17 @@
|
||||
"What does %(platformName)s do with this photo?": "\u0645\u0627 \u0627\u0644\u0630\u064a \u062a\u0641\u0639\u0644\u0647 %(platformName)s \u0628\u0647\u0630\u0647 \u0627\u0644\u0635\u0648\u0631\u0629\u061f",
|
||||
"What does this mean?": "\u0645\u0627\u0630\u0627 \u064a\u0639\u0646\u064a \u0647\u0630\u0627\u061f",
|
||||
"What's Your Next Accomplishment?": "\u0645\u0627\u0647\u0648 \u0625\u0646\u062c\u0627\u0632\u0643 \u0627\u0644\u0642\u0627\u062f\u0645\u061f",
|
||||
"When you select \"Reset Your Password\", a message will be sent to the email address for your {platform_name} account. Click the link in the message to reset your password.": "\u0639\u0646\u062f \u0627\u062e\u062a\u064a\u0627\u0631\u0643 \"\u0625\u0639\u0627\u062f\u0629 \u0636\u0628\u0637 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\"\u060c \u0633\u062a\u0635\u0644 \u0631\u0633\u0627\u0644\u0629 \u0644\u0628\u0631\u064a\u062f\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0627\u0644\u0645\u0633\u062c\u0651\u0644 \u0644\u062f\u0649 \u062d\u0633\u0627\u0628 {platform_name}. \u0644\u062a\u063a\u064a\u064a\u0631 \u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u0631\u0648\u0631\u060c \u0627\u0641\u062a\u062d \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0645\u0646 \u0628\u0631\u064a\u062f\u0643 \u0648\u0627\u0646\u0642\u0631 \u0639\u0644\u0649 \u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0645\u0648\u062c\u0648\u062f \u0641\u064a\u0647\u0627.",
|
||||
"When your face is in position, use the camera button {icon} below to take your photo.": "\u0639\u0646\u062f\u0645\u0627 \u064a\u0643\u0648\u0646 \u0648\u062c\u0647\u0643 \u0641\u064a \u0627\u0644\u0645\u0643\u0627\u0646 \u0627\u0644\u0635\u062d\u064a\u062d\u060c \u0627\u0633\u062a\u062e\u062f\u0645 {icon} \u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0627 \u0623\u062f\u0646\u0627\u0647 \u0644\u0627\u0644\u062a\u0642\u0627\u0637 \u0635\u0648\u0631\u062a\u0643.",
|
||||
"Which timed transcript would you like to use?": "\u0645\u0627 \u0647\u0648 \u0627\u0644\u0646\u0635 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0627\u0644\u0630\u064a \u062a\u0631\u063a\u0628 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645\u0647\u061f",
|
||||
"Whole words": "\u0643\u0644\u0645\u0627\u062a \u0643\u0627\u0645\u0644\u0629 ",
|
||||
"Why activate?": "\u0644\u0645 \u0646\u0639\u062a\u0628\u0631 \u062a\u0641\u0639\u064a\u0644 \u0627\u0644\u062d\u0633\u0627\u0628 \u0636\u0631\u0648\u0631\u064a\u0627\u064b\u061f",
|
||||
"Why does %(platformName)s need my photo?": "\u0644\u0645\u0627\u0630\u0627 \u062a\u062d\u062a\u0627\u062c %(platformName)s \u0625\u0644\u0649 \u0635\u0648\u0631\u062a\u064a\u061f",
|
||||
"Width": "\u0639\u0631\u0636 / \u0627\u062a\u0651\u0633\u0627\u0639",
|
||||
"Will Be Visible To:": "\u0633\u064a\u0635\u0628\u062d \u0645\u0631\u0626\u064a\u0651 \u0645\u0646: ",
|
||||
"Words: {0}": "\u0627\u0644\u0643\u0644\u0645\u0627\u062a: {0}",
|
||||
"Would you like to sign in using your %(providerName)s credentials?": "\u0647\u0644 \u062a\u0631\u064a\u062f \u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0628\u064a\u0627\u0646\u0627\u062a \u062d\u0633\u0627\u0628\u0643 \u0644\u062f\u0649 %(providerName)s\u061f",
|
||||
"XSeries Program Certificates": "\u0634\u0647\u0627\u062f\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u062c XSeries",
|
||||
"XSeries": "XSeries",
|
||||
"Year of Birth": "\u0633\u0646\u0629 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
|
||||
"Yes, allow edits to the active Certificate": "\u0646\u0639\u0645\u060c \u0627\u0642\u0628\u0644 \u0627\u0644\u062a\u0639\u062f\u064a\u0644 \u0639\u0644\u0649 \u0639\u0644\u0649 \u0627\u0644\u0634\u0647\u0627\u062f\u062a \u0627\u0644\u0646\u0634\u0637\u0629.",
|
||||
"Yes, delete this %(xblock_type)s": "\u0646\u0639\u0645\u060c \u0627\u062d\u0630\u0641 \u0647\u0630\u0627 \u0627\u0644\u0640 %(xblock_type)s.",
|
||||
@@ -1801,14 +1906,19 @@
|
||||
"You are a member of this team.": "\u0623\u0646\u062a \u0639\u0636\u0648 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0641\u0631\u064a\u0642",
|
||||
"You are currently sharing a limited profile.": "\u0625\u0646\u0651\u0643 \u062d\u0627\u0644\u064a\u064b\u0651\u0627 \u062a\u0634\u0627\u0631\u0643 \u0645\u0644\u0641\u0651\u064b\u0627 \u0634\u062e\u0635\u064a\u0651\u064b\u0627 \u0645\u062d\u062f\u0648\u062f\u064b\u0627.",
|
||||
"You are enrolling in: {courseName}": "\u0623\u0646\u062a \u0645\u0633\u062c\u0644 \u0641\u064a : {courseName}",
|
||||
"You are here": "\u0623\u0646\u062a \u0647\u0646\u0627",
|
||||
"You are not currently a member of any team.": "\u062d\u0627\u0644\u064a\u064b\u0627\u060c \u0623\u0646\u062a \u0644\u0633\u062a \u0639\u0636\u0648\u064b\u0627 \u0641\u064a \u0623\u064a \u0641\u0631\u064a\u0642.",
|
||||
"You are not enrolled in any XSeries Programs yet.": "\u0623\u0646\u062a \u0644\u0633\u062a \u0645\u0633\u062c\u0644\u0627\u064b \u0641\u064a \u0623\u064a \u0645\u0646 \u0628\u0631\u0627\u0645\u062c XSeries.",
|
||||
"You are not enrolled in any programs yet.": "\u0623\u0646\u062a \u0644\u0633\u062a \u0645\u0646\u0636\u0645\u0627\u064b \u0644\u0623\u064a \u0628\u0631\u0627\u0645\u062c \u0628\u0639\u062f.",
|
||||
"You are now enrolled as a verified student for:": "\u0623\u0646\u062a \u0627\u0644\u0622\u0646 \u0645\u0633\u062c\u0651\u0650\u0644 \u0643\u0637\u0627\u0644\u0628 \u0645\u0648\u062b\u0651\u064e\u0642 \u0644\u062f\u0649: ",
|
||||
"You are sending an email message with the subject {subject} to the following recipients.": "\u0623\u0646\u062a \u0639\u0644\u0649 \u0648\u0634\u0643 \u0625\u0631\u0633\u0627\u0644 \u0647\u0630\u0647 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0648\u0639\u0646\u0648\u0627\u0646\u0647\u0627 \"{subject}\" \u0625\u0644\u0649 \u0627\u0644\u0645\u0633\u062a\u0644\u0645\u064a\u0646 \u0627\u0644\u062a\u0627\u0644\u064a\u0646.",
|
||||
"You are upgrading your enrollment for: {courseName}": "\u0623\u0646\u062a \u062a\u0637\u0648\u0631 \u0627\u0634\u062a\u0631\u0627\u0643\u0643 \u0641\u064a: {courseName}",
|
||||
"You can link your social media accounts to simplify signing in to {platform_name}.": "\u064a\u0645\u0643\u0646\u0643 \u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0627\u062a\u0643 \u0639\u0644\u0649 \u0634\u0628\u0643\u0627\u062a \u0627\u0644\u062a\u0648\u0627\u0635\u0644 \u0627\u0644\u0627\u062c\u062a\u0645\u0627\u0639\u064a \u0628\u0647\u0630\u0627 \u0627\u0644\u062d\u0633\u0627\u0628 \u0644\u062a\u0633\u0647\u064a\u0644 \u0639\u0645\u0644\u064a\u0629 \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644\u0643 \u0625\u0644\u0649 {platform_name} \u0641\u064a \u0648\u0642\u062a \u0644\u0627\u062d\u0642.",
|
||||
"You can now enter your payment information and complete your enrollment.": "\u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u0622\u0646 \u0625\u062f\u062e\u0627\u0644 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0644\u062f\u0641\u0639 \u0648\u0627\u0633\u062a\u0643\u0645\u0627\u0644 \u062a\u0633\u062c\u064a\u0644\u0643. ",
|
||||
"You can pay now even if you don't have the following items available, but you will need to have these by %(date)s to qualify to earn a Verified Certificate.": "\u064a\u0645\u0643\u0646\u0643 \u0623\u0646 \u062a\u062f\u0641\u0639 \u0627\u0644\u0622\u0646 \u062d\u062a\u0649 \u0644\u0645 \u0644\u0645 \u062a\u062a\u0648\u0641\u0651\u0631 \u0644\u062f\u064a\u0643 \u0627\u0644\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u062a\u0627\u0644\u064a\u0629\u060c \u0644\u0643\u0646 \u064a\u062c\u0628 \u0639\u0644\u064a\u0643 \u062a\u0648\u0641\u064a\u0631\u0647\u0627 \u0628\u062d\u0644\u0648\u0644 %(date)s \u0645\u0646 \u0623\u062c\u0644 \u0627\u0644\u062a\u0623\u0647\u0651\u0644 \u0644\u0646\u064a\u0644 \"\u0634\u0647\u0627\u062f\u0629 \u0645\u0648\u062b\u0651\u0642\u0629\". ",
|
||||
"You can pay now even if you don't have the following items available, but you will need to have these to qualify to earn a Verified Certificate.": "\u064a\u0645\u0643\u0646\u0643 \u0623\u0646 \u062a\u062f\u0641\u0639 \u0627\u0644\u0622\u0646 \u062d\u062a\u0649 \u0644\u0645 \u0644\u0645 \u062a\u062a\u0648\u0641\u0651\u0631 \u0644\u062f\u064a\u0643 \u0627\u0644\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u062a\u0627\u0644\u064a\u0629\u060c \u0644\u0643\u0646 \u064a\u062c\u0628 \u0639\u0644\u064a\u0643 \u062a\u0648\u0641\u064a\u0631\u0647\u0627 \u0645\u0646 \u0623\u062c\u0644 \u0627\u0644\u062a\u0623\u0647\u0651\u0644 \u0644\u0646\u064a\u0644 \"\u0634\u0647\u0627\u062f\u0629 \u0645\u0648\u062b\u0651\u0642\u0629\". ",
|
||||
"You can remove members from this team, especially if they have not participated in the team's activity.": "\u064a\u0645\u0643\u0646\u0643 \u0627\u0633\u062a\u0628\u0639\u0627\u062f \u0623\u0639\u0636\u0627\u0621 \u0645\u0646 \u0647\u0630\u0627 \u0627\u0644\u0641\u0631\u064a\u0642\u060c \u0648\u062e\u0627\u0635\u0629\u064b \u0641\u064a \u062d\u0627\u0644 \u0639\u062f\u0645 \u0645\u0634\u0627\u0631\u0643\u062a\u0647\u0645 \u0628\u0623\u0646\u0634\u0637\u0629 \u0627\u0644\u0641\u0631\u064a\u0642.",
|
||||
"You can use your {accountName} account to sign in to your {platformName} account.": "\u064a\u0645\u0643\u0646\u0643 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u062d\u0633\u0627\u0628\u0643 \u0639\u0644\u0649 {accountName} \u0644\u062a\u0633\u062c\u064a\u0644 \u0627\u0644\u062f\u062e\u0648\u0644 \u0625\u0644\u0649 \u062d\u0633\u0627\u0628\u0643 \u0641\u064a \u0645\u0646\u0635\u0629 {platformName}.",
|
||||
"You cannot view the course as a student or beta tester before the course release date.": "\u0644\u0627 \u064a\u0645\u0643\u0646\u0643 \u0631\u0624\u064a\u0629 \u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642 \u0643\u0637\u0627\u0644\u0628 \u0623\u0648 \u0643\u0645\u062e\u062a\u0628\u0631 \u0644\u0646\u0633\u062e\u062a\u0647 \u0627\u0644\u062a\u062c\u0631\u064a\u0628\u064a\u0629 \u0642\u0628\u0644 \u062a\u0627\u0631\u064a\u062e \u0646\u0634\u0631 \u0627\u0644\u0645\u0633\u0627\u0642.",
|
||||
"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?": "\u0644\u0642\u062f \u0642\u064f\u0645\u062a \u0628\u062a\u063a\u064a\u064a\u0631 \u0631\u0627\u0628\u0637 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u062f\u0648\u0646 \u0623\u0646 \u062a\u063a\u064a\u0651\u0631 \u0645\u0644\u0641 \u0627\u0644\u0646\u0635 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0627\u0644\u0645\u0631\u062a\u0628\u0637 \u0628\u0647. \u0647\u0644 \u062a\u0631\u063a\u0628 \u0641\u064a \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0646\u0635 \u0645\u062d\u062f\u0651\u064e\u062f \u0627\u0644\u062a\u0648\u0642\u064a\u062a \u0627\u0644\u062d\u0627\u0644\u064a \u0623\u0648 \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0646\u0635 \u062c\u062f\u064a\u062f \u0628\u0635\u064a\u063a\u0629 .srt\u061f",
|
||||
"You commented...": "\u0643\u0627\u0646 \u062a\u0639\u0644\u064a\u0642\u0643...",
|
||||
"You currently have no cohorts configured": "\u0644\u064a\u0633 \u0644\u062f\u064a\u0643 \u062d\u0627\u0644\u064a\u0651\u064b\u0627 \u0623\u064a \u0634\u0639\u0628 \u0645\u0636\u0628\u0648\u0637\u0629 ",
|
||||
@@ -1818,13 +1928,14 @@
|
||||
"You have already reported this annotation.": "\u0633\u0628\u0642 \u0648\u0623\u0628\u0644\u063a\u062a\u064e \u0639\u0646 \u0647\u0630\u0647 \u0627\u0644\u0645\u0644\u0627\u062d\u0638\u0629 \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a\u0629.",
|
||||
"You have already verified your ID!": "\u0633\u0628\u0642 \u0623\u0646 \u062e\u0636\u062a\u064e \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0645\u0646 \u0628\u0637\u0627\u0642\u062a\u0643 \u0627\u0644\u0634\u062e\u0635\u064a\u0629! ",
|
||||
"You have been logged out of your edX account. ": "\u062c\u0631\u0649 \u062a\u0633\u062c\u064a\u0644 \u062e\u0631\u0648\u062c\u0643 \u0645\u0646 \u062d\u0633\u0627\u0628\u0643 \u0644\u062f\u0649 edX.",
|
||||
"You have done a dry run of force publishing the course. Nothing has changed. Had you run it, the following course versions would have been change.": "\u0644\u0642\u062f \u0642\u0645\u062a \u0628\u0625\u062c\u0631\u0627\u0621 \u062a\u0646\u0641\u064a\u0630 \u0644\u0646\u0634\u0631 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629. \u0641\u0644\u0645 \u064a\u062a\u063a\u064a\u0631 \u0634\u064a\u0621\u060c \u0639\u0646\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644\u060c \u0625\u0635\u062f\u0627\u0631\u0627\u062a \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u0642\u062f \u064a\u062a\u0645 \u062a\u063a\u064a\u064a\u0631\u0647\u0627.",
|
||||
"You have earned certificates in %(completed_courses)s of the %(total_courses)s courses so far.": "\u0644\u0642\u062f \u062d\u0635\u0644\u062a \u0639\u0644\u0649 \u0634\u0647\u0627\u062f\u0627\u062a \u0641\u064a %(completed_courses)s \u0645\u0646 %(total_courses)s \u0645\u0633\u0627\u0642\u0627\u062a \u062d\u062a\u0649 \u0627\u0644\u0622\u0646.",
|
||||
"You have no handouts defined": "\u0644\u064a\u0633 \u0644\u062f\u064a\u0643 \u0623\u064a \u0646\u0634\u0631\u0627\u062a \u0645\u062d\u062f\u0651\u062f\u0629",
|
||||
"You have not bookmarked any courseware pages yet.": "\u0644\u0645 \u062a\u0636\u0639 \u0623\u064a \u0623\u0634\u0627\u0631\u0629 \u0645\u0631\u062c\u0639\u064a\u0651\u0629 \u0644\u0623\u064a \u0645\u0646 \u0635\u0641\u062d\u0627\u062a \u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u0645\u0633\u0627\u0642 \u0628\u0639\u062f.",
|
||||
"You have not created any certificates yet.": "\u0644\u0645 \u062a\u064f\u0646\u0634\u0650\u0626 \u0623\u064a \u0634\u0647\u0627\u062f\u0627\u062a \u0628\u0639\u062f.",
|
||||
"You have not created any content groups yet.": "\u0644\u0645 \u062a\u0646\u0634\u0626 \u0623\u064a \u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0644\u0644\u0645\u062d\u062a\u0648\u0649 \u0628\u0639\u062f.",
|
||||
"You have not created any group configurations yet.": "\u0644\u0645 \u062a\u0646\u0634\u0626 \u0623\u064a \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0644\u0644\u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0628\u0639\u062f.",
|
||||
"You have successfully signed into %(currentProvider)s, but your %(currentProvider)s account does not have a linked %(platformName)s account. To link your accounts, sign in now using your %(platformName)s password.": "\u0646\u062c\u062d \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644\u0643 \u0625\u0644\u0649 %(currentProvider)s\u060c \u0644\u0643\u0646\u0651 \u062d\u0633\u0627\u0628\u0643 \u0644\u062f\u0649 %(currentProvider)s \u0644\u0627 \u064a\u0645\u0644\u0643 \u062d\u0633\u0627\u0628\u064b\u0627 \u0645\u0631\u062a\u0628\u0637\u064b\u0627 \u0628\u0645\u0646\u0635\u0651\u0629 %(platformName)s. \u0648\u0644\u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0643\u060c \u064a\u064f\u0631\u062c\u0649 \u0625\u0643\u0645\u0627\u0644 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 \u0641\u064a \u0635\u0641\u062d\u0629 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0639\u0644\u0649 %(platformName)s.",
|
||||
"You have successfully signed into %(currentProvider)s, but your %(currentProvider)s account does not have a linked %(platformName)s account. To link your accounts, sign in now using your %(platformName)s password.": "\u062a\u0645 \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0645\u0639\u0644\u0648\u0645\u0627\u062a\u0643 \u0645\u0646 %(currentProvider)s\u060c \u0644\u0643\u0646\u0651 \u062d\u0633\u0627\u0628\u0643 \u0639\u0644\u0649 %(currentProvider)s \u063a\u064a\u0631 \u0645\u0631\u062a\u0628\u0637 \u0628\u0623\u064a \u062d\u0633\u0627\u0628 \u0639\u0644\u0649 %(platformName)s. \u0644\u0631\u0628\u0637 \u062d\u0633\u0627\u0628\u0627\u062a\u0643\u061b \u064a\u064f\u0631\u062c\u0649 \u062a\u0639\u0628\u0626\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 \u0648\u0627\u0644\u0645\u062a\u0628\u0642\u064a\u0629 \u0641\u064a \u0635\u0641\u062d\u0629 \u0627\u0644\u062a\u0633\u062c\u064a\u0644 \u0639\u0644\u0649 %(platformName)s.",
|
||||
"You have unsaved changes are you sure you want to navigate away?": "\u0647\u0646\u0627\u0643 \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0644\u0645 \u062a\u062d\u0641\u0651\u0638\u0647\u0627 \u0628\u0639\u062f\u060c \u0647\u0644 \u0623\u0646\u062a \u0648\u0627\u062b\u0642 \u0645\u0646 \u0631\u063a\u0628\u062a\u0643 \u0641\u064a \u0627\u0644\u062e\u0631\u0648\u062c \u0645\u0646 \u0627\u0644\u0635\u0641\u062d\u0629\u061f",
|
||||
"You have unsaved changes. Do you really want to leave this page?": "\u0644\u062f\u064a\u0643 \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u063a\u064a\u0631 \u0645\u062d\u0641\u0651\u0638\u0629. \u0647\u0644 \u062a\u0631\u064a\u062f \u062d\u0642\u0651\u064b\u0627 \u0623\u0646 \u062a\u063a\u0627\u062f\u0631 \u0627\u0644\u0635\u0641\u062d\u0629\u061f",
|
||||
"You haven't added any assets to this course yet.": "\u0644\u0645 \u062a\u064f\u0636\u0650\u0641 \u0623\u064a \u0645\u0648\u0627\u062f \u0645\u0644\u062d\u0642\u0629 \u0628\u0647\u0630\u0627 \u0627\u0644\u0645\u0633\u0627\u0642 \u0628\u0639\u062f. ",
|
||||
@@ -1836,6 +1947,7 @@
|
||||
"You must specify a name": "\u0639\u0644\u064a\u0643 \u0623\u0646 \u062a\u062d\u062f\u0651\u062f \u0627\u0633\u0645\u064b\u0627.",
|
||||
"You must specify a name for the cohort": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062f\u0651\u062f \u0627\u0633\u0645\u064b\u0627 \u0644\u0644\u0634\u0639\u0628\u0629.",
|
||||
"You must specify your birth year before you can share your full profile. To specify your birth year, go to the {account_settings_page_link}": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u062d\u062f\u0651\u062f \u0633\u0646\u0629 \u0645\u064a\u0644\u0627\u062f\u0643 \u0642\u0628\u0644 \u0623\u0646 \u062a\u062a\u0645\u0643\u0651\u0646 \u0645\u0646 \u0645\u0634\u0627\u0631\u0643\u0629 \u0635\u0641\u062d\u062a\u0643 \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u0628\u0623\u0643\u0645\u0644\u0647\u0627. \u0648\u0644\u062a\u062d\u062f\u0651\u062f \u0633\u0646\u0629 \u0645\u064a\u0644\u0627\u062f\u0643\u060c \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0625\u0644\u0649 \u0635\u0641\u062d\u0629 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u062d\u0633\u0627\u0628 {account_settings_page_link}.",
|
||||
"You need a certificate in this course to be eligible for a program certificate.": "\u062a\u062d\u062a\u0627\u062c \u0644\u0634\u0647\u0627\u062f\u0629 \u0625\u062a\u0645\u0627\u0645 \u0641\u064a \u0647\u0630\u0647 \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629 \u062d\u062a\u0649 \u062a\u0643\u0648\u0646 \u0645\u0624\u0647\u0644\u0627\u064b \u0644\u0634\u0647\u0627\u062f\u0629 \u0627\u0644\u0628\u0631\u0646\u0627\u0645\u062c.",
|
||||
"You need a computer that has a webcam. When you receive a browser prompt, make sure that you allow access to the camera.": "\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u062c\u0647\u0627\u0632 \u0643\u0648\u0645\u0628\u064a\u0648\u062a\u0631 \u0645\u0632\u0648\u0651\u064e\u062f \u0628\u0643\u0627\u0645\u064a\u0631\u0627. \u0648\u0639\u0646\u062f \u0627\u0633\u062a\u0644\u0627\u0645\u0643 \u0644\u0639\u0644\u0627\u0645\u0629 \u0627\u0633\u062a\u0639\u062f\u0627\u062f \u0645\u0646 \u0627\u0644\u0645\u062a\u0635\u0641\u0651\u062d\u060c \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u062a\u0623\u0643\u0651\u062f \u0645\u0646 \u0627\u0644\u0633\u0645\u0627\u062d \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0627.",
|
||||
"You need a driver's license, passport, or other government-issued ID that has your name and photo.": "\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0631\u062e\u0635\u0629 \u0642\u064a\u0627\u062f\u0629 \u0623\u0648 \u062c\u0648\u0627\u0632 \u0633\u0641\u0631 \u0623\u0648 \u063a\u064a\u0631\u0647\u0627 \u0645\u0646 \u0627\u0644\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0627\u0644\u0634\u062e\u0635\u064a\u0629 \u0627\u0644\u0635\u0627\u062f\u0631\u0629 \u0639\u0646 \u0627\u0644\u062d\u0643\u0648\u0645\u0629 \u0648\u0627\u0644\u062a\u064a \u062a\u062d\u0645\u0644 \u0627\u0633\u0645\u0643 \u0648\u0635\u0648\u0631\u062a\u0643.",
|
||||
"You need an ID with your name and photo. A driver's license, passport, or other government-issued IDs are all acceptable.": "\u062a\u062d\u062a\u0627\u062c \u0625\u0644\u0649 \u0628\u0637\u0627\u0642\u0629 \u0634\u062e\u0635\u064a\u0629 \u062a\u062d\u0645\u0644 \u0627\u0633\u0645\u0643 \u0648\u0635\u0648\u0631\u062a\u0643. \u0648\u064a\u0645\u0643\u0646 \u062a\u0642\u062f\u064a\u0645 \u0631\u062e\u0635\u0629 \u0627\u0644\u0642\u064a\u0627\u062f\u0629\u060c \u0623\u0648 \u062c\u0648\u0627\u0632 \u0627\u0644\u0633\u0641\u0631\u060c \u0623\u0648 \u0628\u0637\u0627\u0642\u0629 \u0634\u062e\u0635\u064a\u0629 \u0623\u062e\u0631\u0649 \u0635\u0627\u062f\u0631\u0629 \u0639\u0646 \u0627\u0644\u062d\u0643\u0648\u0645\u0629\u060c \u0641\u062c\u0645\u064a\u0639 \u0647\u0630\u0647 \u0627\u0644\u0648\u062b\u0627\u0626\u0642 \u0645\u0642\u0628\u0648\u0644\u0629. ",
|
||||
@@ -1849,7 +1961,7 @@
|
||||
"You!": "\u0623\u0646\u062a!",
|
||||
"You've made some changes": "\u0644\u0642\u062f \u0623\u062c\u0631\u064a\u062a \u0628\u0639\u0636 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a.",
|
||||
"You've made some changes, but there are some errors": "\u0647\u0646\u0627\u0644\u0643 \u0639\u062f\u062f \u0645\u0646 \u0627\u0644\u0623\u062e\u0637\u0627\u0621 \u0628\u0627\u0644\u0631\u063a\u0645 \u0645\u0646 \u0625\u062c\u0631\u0627\u0626\u0643 \u0644\u0628\u0639\u0636 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a.",
|
||||
"You've successfully signed into %(currentProvider)s.": "\u0646\u062c\u062d \u062a\u0633\u062c\u064a\u0644 \u062f\u062e\u0648\u0644\u0643 \u0641\u064a %(currentProvider)s. ",
|
||||
"You've successfully signed into %(currentProvider)s.": "\u062a\u0645 \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0645\u0639\u0644\u0648\u0645\u0627\u062a\u0643 \u0645\u0646 %(currentProvider)s. ",
|
||||
"Your ID must be a government-issued photo ID that clearly shows your face.": "\u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0647\u0648\u064a\u0651\u062a\u0643 \u0627\u0644\u0645\u0639\u062a\u0645\u062f\u0629 \u0647\u064a \u0628\u0637\u0627\u0642\u0629 \u0627\u0644\u0647\u0648\u064a\u0629 \u0627\u0644\u0634\u062e\u0635\u064a\u0651\u0629 \u0627\u0644\u062d\u0643\u0648\u0645\u064a\u0629 \u0627\u0644\u062a\u064a \u062a\u062d\u0645\u0644 \u0635\u0648\u0631\u0629 \u0648\u0627\u0636\u062d\u0629 \u0644\u0648\u062c\u0647\u0643.",
|
||||
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": "\u0644\u0627 \u064a\u062f\u0639\u0645 \u0645\u062a\u0635\u0641\u0651\u062d\u0643 \u0627\u0644\u0648\u0635\u0648\u0644 \u0627\u0644\u0645\u0628\u0627\u0634\u0631 \u0625\u0644\u0649 \u0627\u0644\u062d\u0627\u0641\u0638\u0629. \u064a\u064f\u0631\u062c\u0649 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d Ctrl+X/C/V \u0628\u062f\u0644\u064b\u0627 \u0645\u0646\u0647. ",
|
||||
"Your changes have been saved.": "\u062c\u0631\u0649 \u062d\u0641\u0638 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0627\u0644\u062a\u064a \u0623\u062c\u0631\u064a\u062a\u0647\u0627. ",
|
||||
@@ -1857,6 +1969,7 @@
|
||||
"Your changes will not take effect until you save your progress. Take care with key and value formatting, as validation is not implemented.": "\u0644\u0646 \u062a\u0635\u0628\u062d \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0627\u0644\u062a\u064a \u0623\u062c\u0631\u064a\u062a\u0647\u0627 \u0646\u0627\u0641\u0630\u0629 \u062d\u062a\u0649 \u062a\u062d\u0641\u0651\u0638 \u062e\u0637\u0648\u0627\u062a \u0627\u0644\u062a\u0642\u062f\u0651\u0645 \u0627\u0644\u062a\u064a \u0627\u062a\u0651\u062e\u0630\u062a\u0647\u0627. \u064a\u064f\u0631\u062c\u0649 \u0645\u0631\u0627\u0639\u0627\u0629 \u0627\u0644\u062f\u0642\u0629 \u0641\u064a \u062a\u0646\u0633\u064a\u0642 \u0627\u0644\u0645\u0641\u062a\u0627\u062d \u0648\u0627\u0644\u0642\u064a\u0645\u0629\u060c \u062d\u064a\u062b \u0623\u0646\u0651 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0648\u0627\u0644\u0645\u0635\u0627\u062f\u0642\u0629 \u063a\u064a\u0631 \u0645\u0637\u0628\u0651\u0642\u0629.",
|
||||
"Your course could not be exported to XML. There is not enough information to identify the failed component. Inspect your course to identify any problematic components and try again.": "\u062a\u0639\u0630\u0651\u0631 \u062a\u0635\u062f\u064a\u0631 \u0645\u0633\u0627\u0642\u0643 \u0625\u0644\u0649 \u0645\u0644\u0641 \u0628\u0635\u064a\u063a\u0629 XML\u060c \u0648\u0644\u0627 \u0646\u0645\u0644\u0643 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0643\u0627\u0641\u064a\u0629 \u0644\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0645\u0643\u0648\u0651\u0646 \u0627\u0644\u062e\u0627\u0637\u0626. \u064a\u0631\u062c\u0649 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0645\u0633\u0627\u0642\u0643 \u0644\u062a\u062d\u062f\u064a\u062f \u0623\u064a \u0645\u0643\u0648\u0651\u0646\u0627\u062a \u062e\u0627\u0637\u0626\u0629 \u062b\u0645 \u062d\u0627\u0648\u0644 \u0645\u0631\u0629 \u0623\u062e\u0631\u0649.",
|
||||
"Your donation could not be submitted.": "\u062a\u0639\u0630\u0651\u0631 \u062a\u0642\u062f\u064a\u0645 \u062a\u0628\u0631\u0639\u0643.",
|
||||
"Your email message was successfully queued for sending. In courses with a large number of learners, email messages to learners might take up to an hour to be sent.": "\u062a\u0645 \u062c\u062f\u0648\u0644\u0629 \u0625\u0631\u0633\u0627\u0644 \u0631\u0633\u0627\u0644\u062a\u0643 \u0628\u0646\u062c\u0627\u062d. \u0642\u062f \u064a\u0633\u062a\u063a\u0631\u0642 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 \u0644\u062c\u0645\u064a\u0639 \u0645\u062a\u0639\u0644\u0645\u064a \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629 \u0633\u0627\u0639\u0629 \u0643\u0627\u0645\u0644\u0629\u060c \u0648\u064a\u0639\u062a\u0645\u062f \u0630\u0644\u0643 \u0639\u0644\u0649 \u0639\u062f\u062f \u0627\u0644\u0645\u062a\u0639\u0644\u0645\u064a\u0646 \u0641\u064a \u0627\u0644\u062f\u0648\u0631\u0629 \u0627\u0644\u062a\u062f\u0631\u064a\u0628\u064a\u0629.",
|
||||
"Your entire face fits inside the frame.": "\u0623\u0646\u0651 \u0648\u062c\u0647\u0643 \u062f\u0627\u062e\u0644 \u0625\u0637\u0627\u0631 \u0627\u0644\u0635\u0648\u0631\u0629 \u0628\u0627\u0644\u0643\u0627\u0645\u0644.",
|
||||
"Your face is well-lit.": "\u0623\u0646\u0651 \u0627\u0644\u0625\u0636\u0627\u0621\u0629 \u062c\u064a\u0651\u062f\u0629 \u0639\u0644\u0649 \u0648\u062c\u0647\u0643.",
|
||||
"Your file '{file}' has been uploaded. Allow a few minutes for processing.": "\u062c\u0631\u0649 \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641\u0651\u0643 '{file}'. \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u0627\u0646\u062a\u0638\u0627\u0631 \u0644\u0628\u0636\u0639 \u062f\u0642\u0627\u0626\u0642 \u0644\u0625\u062a\u0645\u0627\u0645 \u0627\u0644\u0645\u0639\u0627\u0644\u062c\u0629.",
|
||||
@@ -1867,6 +1980,7 @@
|
||||
"Your library could not be exported to XML. There is not enough information to identify the failed component. Inspect your library to identify any problematic components and try again.": "\u0646\u0623\u0633\u0641 \u0644\u062a\u0639\u0630\u0651\u0631 \u062a\u0635\u062f\u064a\u0631 \u0645\u0643\u062a\u0628\u062a\u0643 \u0625\u0644\u0649 \u0645\u0644\u0641 \u0628\u0635\u064a\u063a\u0629 XML\u060c \u0648\u0644\u0627 \u062a\u062a\u0648\u0641\u0651\u0631 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0643\u0627\u0641\u064a\u0629 \u0644\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0645\u0643\u0648\u0651\u0650\u0646 \u0627\u0644\u062e\u0627\u0637\u0626. \u064a\u064f\u0631\u062c\u0649 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0645\u0646 \u0645\u0643\u062a\u0628\u062a\u0643 \u0644\u062a\u062d\u062f\u064a\u062f \u0623\u064a \u0645\u0643\u0648\u0651\u0650\u0646\u0627\u062a \u062e\u0627\u0637\u0626\u0629 \u062b\u0645\u0651 \u0627\u0644\u0645\u062d\u0627\u0648\u0644\u0629 \u0645\u0631\u0651\u0629 \u0623\u062e\u0631\u0649.",
|
||||
"Your message cannot be blank.": "\u0644\u0627 \u064a\u0645\u0643\u0646 \u0644\u0631\u0633\u0627\u0644\u062a\u0643 \u0639\u0628\u0631 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0623\u0646 \u062a\u0643\u0648\u0646 \u0641\u0627\u0631\u063a\u0629.",
|
||||
"Your message must have a subject.": "\u064a\u062c\u0628 \u0645\u0644\u0621 \u062e\u0627\u0646\u0629 \u0627\u0644\u0645\u0648\u0636\u0648\u0639 \u0641\u064a \u0631\u0633\u0627\u0644\u062a\u0643 \u0639\u0628\u0631 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a.",
|
||||
"Your message must have at least one target.": "\u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0644\u0631\u0633\u0627\u0644\u062a\u0643 \u0645\u0633\u062a\u0644\u0645 \u0648\u0627\u062d\u062f \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644.",
|
||||
"Your policy changes have been saved.": "\u062c\u0631\u0649 \u062d\u0641\u0638 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0627\u0644\u062a\u064a \u0623\u062f\u062e\u0644\u062a\u0647\u0627 \u0639\u0644\u0649 \u0627\u0644\u0633\u064a\u0627\u0633\u0629.",
|
||||
"Your post will be discarded.": "\u0633\u0648\u0641 \u064a\u064f\u062d\u0630\u064e\u0641 \u0645\u0646\u0634\u0648\u0631\u0643.",
|
||||
"Your request could not be completed due to a server problem. Reload the page": "\u062a\u0639\u0630\u0631 \u0627\u0633\u062a\u0643\u0645\u0627\u0644 \u0637\u0644\u0628\u0643 \u0628\u0633\u0628\u0628 \u0645\u0634\u0643\u0644\u0629 \u0641\u064a \u0627\u0644\u062e\u0627\u062f\u0645. \u0642\u0645 \u0628\u0625\u0639\u0627\u062f\u0629 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0635\u0641\u062d\u0629",
|
||||
@@ -1878,6 +1992,7 @@
|
||||
"Your upload of '{file}' succeeded.": "\u0646\u062c\u062d \u062a\u062d\u0645\u064a\u0644\u0643 \u0644\u0645\u0644\u0641 '{file}'. ",
|
||||
"Your verification status is good until {verificationGoodUntil}.": "\u062d\u0627\u0644\u0629 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646\u0643 \u0633\u0644\u064a\u0645\u0629 \u062d\u062a\u0649 {verificationGoodUntil}",
|
||||
"Your video uploads are not complete.": "\u0639\u0645\u0644\u064a\u0627\u062a \u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0627\u0644\u0641\u064a\u062f\u064a\u0648 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u063a\u064a\u0631 \u0645\u0643\u062a\u0645\u0644\u0629.",
|
||||
"Yourself": "\u0646\u0641\u0633\u0643",
|
||||
"Zoom In": "\u062a\u0643\u0628\u064a\u0631",
|
||||
"Zoom Out": "\u062a\u0635\u063a\u064a\u0631",
|
||||
"[no tags]": "[\u0644\u0627 \u064a\u0648\u062c\u062f \u0623\u064a \u0648\u0633\u0645]",
|
||||
@@ -1900,6 +2015,7 @@
|
||||
"answered question": "\u0633\u0624\u0627\u0644 \u0645\u064f\u062c\u0627\u0628 \u0639\u0644\u064a\u0647",
|
||||
"asset_path is required": "\u0645\u0633\u0627\u0631 \u0627\u0644\u0645\u0627\u062f\u0629 \u0627\u0644\u0645\u0648\u062c\u0648\u062f\u0629 \u0645\u0637\u0644\u0648\u0628",
|
||||
"bytes": "\u0628\u0627\u064a\u062a",
|
||||
"category": "\u0641\u0626\u0629",
|
||||
"certificate": "\u0627\u0644\u0634\u0647\u0627\u062f\u0629",
|
||||
"certificate.credential_url": "certificate.credential_url",
|
||||
"certificate.display_name": "certificate.display_name",
|
||||
@@ -1922,6 +2038,7 @@
|
||||
"emphasized text": "\u0646\u0635 \u0628\u0635\u064a\u063a\u0629 \u2019emphasized\u2018\u060c \u0623\u064a \u0645\u0634\u062f\u0651\u062f \u0639\u0644\u064a\u0647",
|
||||
"endorsed %(time_ago)s": "\u0645\u0635\u0627\u062f\u0642\u0629 \u0639\u0644\u064a\u0647\u0627 %(time_ago)s",
|
||||
"endorsed %(time_ago)s by %(user)s": "\u0645\u0635\u0627\u062f\u0642\u0629 \u0639\u0644\u064a\u0647\u0627 %(time_ago)s \u0645\u0646 \u0642\u0650\u0628\u0644 %(user)s",
|
||||
"enrolled": "\u0645\u0633\u062c\u0651\u064e\u0644",
|
||||
"enter code here": "\u0623\u062f\u062e\u0644 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0628\u0631\u0645\u062c\u064a\u0629 \u0647\u0646\u0627",
|
||||
"enter link description here": "\u0623\u062f\u062e\u0644 \u0648\u0635\u0641 \u0627\u0644\u0631\u0627\u0628\u0637 \u0647\u0646\u0627",
|
||||
"error.message": "\u0631\u0633\u0627\u0644\u0629 \u062e\u0637\u0623 error.message",
|
||||
@@ -1931,6 +2048,7 @@
|
||||
"formLabel": "\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0646\u0645\u0648\u0630\u062c formLabel",
|
||||
"gettext(": "\u0648\u0638\u064a\u0641\u0629 gettext(",
|
||||
"group configuration": "\u0636\u0628\u0637 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0645\u062c\u0645\u0648\u0639\u0629",
|
||||
"image omitted": "\u062a\u0645 \u062d\u0630\u0641 \u0627\u0644\u0635\u0648\u0631\u0629",
|
||||
"incorrect": "\u062e\u0637\u0623",
|
||||
"language": "\u0627\u0644\u0644\u063a\u0629",
|
||||
"last activity": "\u0627\u0644\u0646\u0634\u0627\u0637 \u0627\u0644\u0623\u062e\u064a\u0631",
|
||||
@@ -1939,6 +2057,7 @@
|
||||
"marked as answer %(time_ago)s by %(user)s": "\u0645\u0648\u0633\u0648\u0645\u0629 \u0643\u0625\u062c\u0627\u0628\u0629 %(time_ago)s \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645 %(user)s",
|
||||
"message": "\u0631\u0633\u0627\u0644\u0629",
|
||||
"name": "\u0627\u0644\u0627\u0633\u0645 ",
|
||||
"not enrolled": "\u063a\u064a\u0631 \u0645\u0633\u062c\u0644",
|
||||
"off": "\u063a\u064a\u0631 \u0645\u0641\u0639\u0651\u0644",
|
||||
"on": "\u0645\u0641\u0639\u0651\u0644",
|
||||
"open slots": "\u0627\u0644\u0634\u0648\u0627\u063a\u0631 \u0627\u0644\u0645\u062a\u0627\u062d\u0629",
|
||||
@@ -1968,16 +2087,40 @@
|
||||
"\u064a\u0648\u062c\u062f \u062d\u0627\u0644\u064a\u064b\u0627 %(numVotes)s \u0623\u0635\u0648\u0627\u062a",
|
||||
"\u064a\u062a\u0648\u0641\u0651\u0631 \u062d\u0627\u0644\u064a\u0651\u064b\u0627 %(numVotes)s \u0635\u0648\u062a\u064b\u0627"
|
||||
],
|
||||
"there is currently {numVotes} vote": [
|
||||
"\u0647\u0646\u0627\u0643 {numVotes} \u0635\u0648\u062a",
|
||||
"\u0647\u0646\u0627\u0643 {numVotes} \u0635\u0648\u062a",
|
||||
"\u0647\u0646\u0627\u0643 {numVotes} \u0635\u0648\u062a",
|
||||
"\u0647\u0646\u0627\u0643 {numVotes} \u0623\u0635\u0648\u0627\u062a",
|
||||
"\u0647\u0646\u0627\u0643 {numVotes} \u0635\u0648\u062a\u0627\u064b",
|
||||
"\u0647\u0646\u0627\u0643 {numVotes} \u0635\u0648\u062a"
|
||||
],
|
||||
"timed": "\u0645\u0624\u0642\u0651\u062a",
|
||||
"title": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646",
|
||||
"type": "\u0627\u0644\u0646\u0648\u0639",
|
||||
"unanswered question": "\u0633\u0624\u0627\u0644 \u063a\u064a\u0631 \u0645\u064f\u062c\u0627\u0628 \u0639\u0644\u064a\u0647",
|
||||
"unit": "\u0648\u062d\u062f\u0629",
|
||||
"upload a PDF file or provide the path to a Studio asset file": "\u062a\u062d\u0645\u064a\u0644 \u0645\u0644\u0641 \u0628\u0635\u064a\u063a\u0629 PDF \u0623\u0648 \u062a\u062d\u062f\u064a\u062f \u0645\u0633\u0627\u0631 \u0623\u062d\u062f \u0627\u0644\u0645\u0644\u0641\u0651\u0627\u062a \u0627\u0644\u0645\u0644\u062d\u0642\u0629 \u0628\u0628\u0631\u0646\u0627\u0645\u062c \u0627\u0633\u062a\u0648\u062f\u064a\u0648",
|
||||
"username or email": "\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645 \u0623\u0648 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a:",
|
||||
"with %(release_date_from)s": "\u0645\u0639 %(release_date_from)s",
|
||||
"with %(section_or_subsection)s": "\u0645\u0639 %(section_or_subsection)s",
|
||||
"{0} is invalid": "{0} \u063a\u064a\u0631 \u0635\u0627\u0644\u062d",
|
||||
"{0} is required": "{0} \u0645\u0637\u0644\u0648\u0628",
|
||||
"{0} must be a number": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0631\u0642\u0645\u064b\u0627",
|
||||
"{0} must be a valid email": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0628\u0631\u064a\u062f\u064b\u0627 \u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u064b\u0627 \u0635\u0627\u0644\u062d\u064b\u0627",
|
||||
"{0} must be a valid url": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0639\u0646\u0648\u0627\u0646 url \u0635\u0627\u0644\u062d\u064b\u0627 ",
|
||||
"{0} must be accepted": "{0} \u064a\u062c\u0628 \u0642\u0628\u0648\u0644\u0647",
|
||||
"{0} must be at least {1} characters": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644 {1} \u0631\u0645\u0648\u0632",
|
||||
"{0} must be at most {1} characters": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0639\u0644\u0649 \u0627\u0644\u0623\u0643\u062b\u0631 {1} \u0631\u0645\u0648\u0632",
|
||||
"{0} must be between {1} and {2}": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0628\u064a\u0646 {1} \u0648 {2} ",
|
||||
"{0} must be between {1} and {2} characters": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0628\u064a\u0646 {1} \u0648 {2} \u0631\u0645\u0648\u0632",
|
||||
"{0} must be greater than or equal to {1}": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0648 \u064a\u0633\u0627\u0648\u064a {1}",
|
||||
"{0} must be less than or equal to {1}": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0623\u0635\u063a\u0631 \u0645\u0646 \u0623\u0648 \u064a\u0633\u0627\u0648\u064a {1}",
|
||||
"{0} must be one of: {1}": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0648\u0627\u062d\u062f\u064b\u0627 \u0645\u0646: {1}",
|
||||
"{0} must be the same as {1}": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0646\u0641\u0633 {1} ",
|
||||
"{0} must be {1} characters": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 {1} \u0631\u0645\u0648\u0632",
|
||||
"{0} must only contain digits": "{0} \u064a\u062c\u0628 \u0623\u0646 \u064a\u062d\u062a\u0648\u0649 \u0639\u0644\u0649 \u0623\u0631\u0642\u0627\u0645 \u0641\u0642\u0637",
|
||||
"{browse_span_start}Browse teams in other topics{span_end} or {search_span_start}search teams{span_end} in this topic. If you still can't find a team to join, {create_span_start}create a new team in this topic{span_end}.": "{browse_span_start}\u062a\u0635\u0641\u0651\u062d \u0641\u0631\u0642 \u0641\u064a \u0645\u0648\u0636\u0648\u0639\u0627\u062a \u0623\u062e\u0631\u0649{span_end} \u0623\u0648 {search_span_start} \u0627\u0628\u062d\u062b \u0641\u064a \u0627\u0644\u0641\u0631\u0642{span_end} \u0636\u0645\u0646 \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0636\u0648\u0639. \u0641\u064a \u062d\u0627\u0644 \u0644\u0645 \u062a\u062a\u0645\u0643\u0651\u0646 \u0645\u0646 \u0625\u064a\u062c\u0627\u062f \u0641\u0631\u064a\u0642 \u0644\u0644\u0627\u0646\u0636\u0645\u0627\u0645 \u0625\u0644\u064a\u0647\u060c {create_span_start}\u0623\u0646\u0634\u0626 \u0641\u0631\u064a\u0642\u064b\u0627 \u062c\u062f\u064a\u062f\u064b\u0627 \u0636\u0645\u0646 \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0636\u0648\u0639{span_end}.",
|
||||
"{display_name} Settings": "\u0625\u0639\u062f\u0627\u062f\u0627\u062a {display_name}",
|
||||
"{email} is already on the {container} team. Recheck the email address if you want to add a new member.": "{email} \u0647\u0648 \u0639\u0636\u0648 \u0645\u0633\u062c\u0651\u064e\u0644 \u0645\u0646 \u0642\u0628\u0644 \u0641\u064a \u0641\u0631\u064a\u0642 {container}. \u064a\u064f\u0631\u062c\u0649 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u062d\u0642\u0651\u0642 \u0645\u0646 \u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u0625\u0630\u0627 \u0623\u0631\u062f\u062a \u0625\u0636\u0627\u0641\u0629 \u0639\u0636\u0648 \u062c\u062f\u064a\u062f.",
|
||||
"{hours}:{minutes} (current UTC time)": "{hours}:{minutes} (\u062a\u0648\u0642\u064a\u062a \u063a\u0631\u064a\u0646\u062a\u0634 \u0627\u0644\u062d\u0627\u0644\u064a)",
|
||||
"{numMoved} student was removed from {oldCohort}": [
|
||||
@@ -1996,6 +2139,22 @@
|
||||
"{numPresent} \u0637\u0627\u0644\u0628 \u0641\u064a \u0627\u0644\u0634\u0639\u0628\u0629 \u0645\u0646 \u0642\u0628\u0644.",
|
||||
"\u0633\u064e\u0628\u064e\u0642\u064e \u0623\u0646 \u0643\u0627\u0646 \u064a\u0648\u062c\u062f {numPresent} \u0637\u0644\u0651\u0627\u0628 \u0641\u064a \u0627\u0644\u0634\u0639\u0628\u0629."
|
||||
],
|
||||
"{numResponses} other response": [
|
||||
"{numResponses} \u0631\u062f \u0622\u062e\u0631",
|
||||
"{numResponses} \u0631\u062f \u0622\u062e\u0631",
|
||||
"{numResponses} \u0631\u062f \u0622\u062e\u0631",
|
||||
"{numResponses} \u0631\u062f\u0648\u062f \u0623\u062e\u0631\u0649",
|
||||
"{numResponses} \u0631\u062f\u0627\u064b \u0622\u062e\u0631\u0627\u064b",
|
||||
"{numResponses} \u0631\u062f \u0622\u062e\u0631"
|
||||
],
|
||||
"{numResponses} response": [
|
||||
"{numResponses} \u0631\u062f",
|
||||
"{numResponses} \u0631\u062f",
|
||||
"{numResponses} \u0631\u062f",
|
||||
"{numResponses} \u0631\u062f\u0648\u062f",
|
||||
"{numResponses} \u0631\u062f\u0627\u064b",
|
||||
"{numResponses} \u0631\u062f"
|
||||
],
|
||||
"{numUsersAdded} student has been added to this cohort": [
|
||||
"\u062a\u0645 \u0625\u0636\u0627\u0641\u0629 {numUsersAdded} \u0637\u0627\u0644\u0628 \u0644\u0647\u0630\u0647 \u0627\u0644\u0634\u0639\u0628\u0629.",
|
||||
"\u062a\u0645 \u0625\u0636\u0627\u0641\u0629 {numUsersAdded} \u0637\u0627\u0644\u0628 \u0644\u0647\u0630\u0647 \u0627\u0644\u0634\u0639\u0628\u0629.",
|
||||
@@ -2004,10 +2163,27 @@
|
||||
"\u062a\u0645 \u0625\u0636\u0627\u0641\u0629 {numUsersAdded} \u0637\u0627\u0644\u0628 \u0644\u0647\u0630\u0647 \u0627\u0644\u0634\u0639\u0628\u0629.",
|
||||
"\u0623\u064f\u0636\u064a\u0641 {numUsersAdded} \u0637\u0627\u0644\u0628 \u0625\u0644\u0649 \u0647\u0630\u0647 \u0627\u0644\u0634\u0639\u0628\u0629."
|
||||
],
|
||||
"{numVotes} Vote": [
|
||||
"{numVotes} \u0635\u0648\u062a",
|
||||
"{numVotes} \u0635\u0648\u062a",
|
||||
"{numVotes} \u0635\u0648\u062a",
|
||||
"{numVotes} \u0623\u0635\u0648\u0627\u062a",
|
||||
"{numVotes} \u0635\u0648\u062a\u0627\u064b",
|
||||
"{numVotes} \u0635\u0648\u062a"
|
||||
],
|
||||
"{organization}\\'s logo": "\u0634\u0639\u0627\u0631 \u0627\u0644{organization}",
|
||||
"{platform_name} learners can see my:": "\u064a\u0645\u0643\u0646 \u0644\u0644\u0645\u062a\u0639\u0644\u0651\u0645\u064a\u0646 \u0641\u064a \u0645\u0646\u0635\u0651\u0629 {platform_name} \u0631\u0624\u064a\u0629:",
|
||||
"{screen_reader_start}Warning:{screen_reader_end} No content groups exist.": "{screen_reader_start}\u062a\u062d\u0630\u064a\u0631:{screen_reader_end} \u062a\u0639\u0630\u0651\u0631 \u0625\u064a\u062c\u0627\u062f \u0645\u062c\u0645\u0648\u0639\u0627\u062a \u0645\u062d\u062a\u0648\u0649.",
|
||||
"{screen_reader_start}Warning:{screen_reader_end} The previously selected content group was deleted. Select another content group.": "{screen_reader_start}\u062a\u062d\u0630\u064a\u0631:{screen_reader_end} \u062d\u0651\u0630\u0641\u062a \u0645\u062c\u0645\u0648\u0639\u0629 \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u0645\u062d\u062f\u0651\u062f\u0629 \u0633\u0627\u0628\u0642\u064b\u0627. \u064a\u064f\u0631\u062c\u0649 \u0627\u062e\u062a\u064a\u0627\u0631 \u0645\u062c\u0645\u0648\u0639\u0629 \u0645\u062d\u062a\u0648\u0649 \u0623\u062e\u0631\u0649.",
|
||||
"{totalItems} total": "\u0627\u0644\u0625\u062c\u0645\u0627\u0644\u064a {totalItems}",
|
||||
"{unread_count} new comment": [
|
||||
"{unread_count} \u062a\u0639\u0644\u064a\u0642 \u062c\u062f\u064a\u062f",
|
||||
"{unread_count} \u062a\u0639\u0644\u064a\u0642 \u062c\u062f\u064a\u062f",
|
||||
"{unread_count} \u062a\u0639\u0644\u064a\u0642 \u062c\u062f\u064a\u062f",
|
||||
"{unread_count} \u062a\u0639\u0644\u064a\u0642\u0627\u062a \u062c\u062f\u064a\u062f\u0629",
|
||||
"{unread_count} \u062a\u0639\u0644\u064a\u0642\u0627\u064b \u062c\u062f\u064a\u062f\u0627\u064b",
|
||||
"{unread_count} \u062a\u0639\u0644\u064a\u0642 \u062c\u062f\u064a\u062f"
|
||||
],
|
||||
"\u2026": "..."
|
||||
};
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user