diff --git a/Changelog.md b/Changelog.md
index 70d212a87..2c40a1f0a 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,6 +1,11 @@
Drag and Drop XBlock changelog
==============================
+Version 2.5.0 (2022-10-13)
+---------------------------
+
+* Make the "Show Answer" condition customizable (like in the Problem XBlock).
+
Version 2.4.2 (2022-10-13)
---------------------------
diff --git a/README.md b/README.md
index 430a62557..1db4078d7 100644
--- a/README.md
+++ b/README.md
@@ -104,9 +104,15 @@ There are two problem modes available:
* **Standard**: In this mode, the learner gets immediate feedback on each
attempt to place an item, and the number of attempts is not limited.
* **Assessment**: In this mode, the learner places all items on the board and
- then clicks a "Submit" button to get feedback. The number of attempts can be
- limited. When all attempts are used, the learner can click a "Show Answer"
- button to temporarily place items on their correct drop zones.
+ then clicks a "Submit" button to get feedback.
+ * The number of attempts can be limited.
+ * The learner can click a "Show Answer" button to temporarily place items on their correct drop zones.
+ You can select one of the pre-defined conditions for displaying this button. They work in the same way as in the
+ Problem XBlock, so you can read about each them in the [Problem Component documentation][capa-show-answer].
+ By default, the value from the course "Advanced Settings" configuration is used. If you have modified this for
+ a specific XBlock but want to switch back to using the default value, select the "Default" option.
+
+[capa-show-answer]: https://edx.readthedocs.io/projects/open-edx-building-and-running-a-course/en/latest/course_components/create_problem.html#show-answer

diff --git a/drag_and_drop_v2/drag_and_drop_v2.py b/drag_and_drop_v2/drag_and_drop_v2.py
index a8cde21ce..4dc31e0a4 100644
--- a/drag_and_drop_v2/drag_and_drop_v2.py
+++ b/drag_and_drop_v2/drag_and_drop_v2.py
@@ -29,7 +29,7 @@
from .default_data import DEFAULT_DATA
from .utils import (
- Constants, DummyTranslationService, FeedbackMessage,
+ Constants, SHOWANSWER, DummyTranslationService, FeedbackMessage,
FeedbackMessages, ItemStats, StateMigration, _clean_data, _
)
@@ -45,6 +45,7 @@
# pylint: disable=bad-continuation
@XBlock.wants('settings')
@XBlock.wants('replace_urls')
+@XBlock.wants('user') # Using `needs` breaks the Course Outline page in Maple.
@XBlock.needs('i18n')
class DragAndDropBlock(
ScorableXBlockMixin,
@@ -133,6 +134,29 @@ class DragAndDropBlock(
default=True,
enforce_type=True,
)
+ showanswer = String(
+ display_name=_("Show answer"),
+ help=_("Defines when to show the answer to the problem. "
+ "A default value can be set in Advanced Settings. "
+ "To revert setting a custom value, choose the 'Default' option."),
+ scope=Scope.settings,
+ default=SHOWANSWER.FINISHED,
+ values=[
+ {"display_name": _("Default"), "value": SHOWANSWER.DEFAULT},
+ {"display_name": _("Always"), "value": SHOWANSWER.ALWAYS},
+ {"display_name": _("Answered"), "value": SHOWANSWER.ANSWERED},
+ {"display_name": _("Attempted or Past Due"), "value": SHOWANSWER.ATTEMPTED},
+ {"display_name": _("Closed"), "value": SHOWANSWER.CLOSED},
+ {"display_name": _("Finished"), "value": SHOWANSWER.FINISHED},
+ {"display_name": _("Correct or Past Due"), "value": SHOWANSWER.CORRECT_OR_PAST_DUE},
+ {"display_name": _("Past Due"), "value": SHOWANSWER.PAST_DUE},
+ {"display_name": _("Never"), "value": SHOWANSWER.NEVER},
+ {"display_name": _("After All Attempts"), "value": SHOWANSWER.AFTER_ALL_ATTEMPTS},
+ {"display_name": _("After All Attempts or Correct"), "value": SHOWANSWER.AFTER_ALL_ATTEMPTS_OR_CORRECT},
+ {"display_name": _("Attempted"), "value": SHOWANSWER.ATTEMPTED_NO_PAST_DUE},
+ ],
+ enforce_type=True,
+ )
weight = Float(
display_name=_("Problem Weight"),
@@ -391,6 +415,7 @@ def items_without_answers():
"item_background_color": self.item_background_color or None,
"item_text_color": self.item_text_color or None,
"has_deadline_passed": self.has_submission_deadline_passed,
+ "answer_available": self.is_answer_available,
# final feedback (data.feedback.finish) is not included - it may give away answers.
}
@@ -410,6 +435,7 @@ def studio_view(self, context):
'js_templates': js_templates,
'id_suffix': id_suffix,
'fields': self.fields,
+ 'showanswer_set': self._field_data.has(self, 'showanswer'), # If false, we're using an inherited value.
'self': self,
'data': six.moves.urllib.parse.quote(json.dumps(self.data)),
}
@@ -464,6 +490,10 @@ def studio_submit(self, submissions, suffix=''):
self.display_name = submissions['display_name']
self.mode = submissions['mode']
self.max_attempts = submissions['max_attempts']
+ if (showanswer := submissions['showanswer']) != self.showanswer:
+ self.showanswer = showanswer
+ if showanswer == SHOWANSWER.DEFAULT:
+ del self.showanswer
self.show_title = submissions['show_title']
self.question_text = submissions['problem_text']
self.show_question_header = submissions['show_problem_header']
@@ -557,7 +587,7 @@ def do_attempt(self, data, suffix=''):
# fields, either as an "input" (i.e. read value) or as output (i.e. set value) or both. As a result,
# incorrect order of invocation causes issues:
self._mark_complete_and_publish_grade() # must happen before _get_feedback - sets grade
- correct = self._is_answer_correct() # must happen before manipulating item_state - reads item_state
+ correct = self.is_correct # must happen before manipulating item_state - reads item_state
overall_feedback_msgs, misplaced_ids = self._get_feedback(include_item_feedback=True)
@@ -575,7 +605,8 @@ def do_attempt(self, data, suffix=''):
'grade': self._get_weighted_earned_if_set(),
'misplaced_items': list(misplaced_ids),
'feedback': self._present_feedback(feedback_msgs),
- 'overall_feedback': self._present_feedback(overall_feedback_msgs)
+ 'overall_feedback': self._present_feedback(overall_feedback_msgs),
+ "answer_available": self.is_answer_available,
}
@XBlock.json_handler
@@ -606,17 +637,17 @@ def show_answer(self, data, suffix=''):
Raises:
* JsonHandlerError with 400 error code in standard mode.
- * JsonHandlerError with 409 error code if there are still attempts left
+ * JsonHandlerError with 409 error code if the answer is unavailable.
"""
if self.mode != Constants.ASSESSMENT_MODE:
raise JsonHandlerError(
400,
self.i18n_service.gettext("show_answer handler should only be called for assessment mode")
)
- if self.attempts_remain:
+ if not self.is_answer_available:
raise JsonHandlerError(
409,
- self.i18n_service.gettext("There are attempts remaining")
+ self.i18n_service.gettext("The answer is unavailable")
)
answer = self._get_correct_state()
@@ -693,6 +724,65 @@ def has_submission_deadline_passed(self):
else:
return False
+ @property
+ def closed(self):
+ """
+ Is the student still allowed to submit answers?
+ """
+ if not self.attempts_remain:
+ return True
+ if self.has_submission_deadline_passed:
+ return True
+
+ return False
+
+ @property
+ def is_attempted(self):
+ """
+ Has the problem been attempted?
+ """
+ return self.attempts > 0
+
+ @property
+ def is_finished(self):
+ """
+ Returns True if answer is closed or answer is correct.
+ """
+ return self.closed or self.is_correct
+
+ @property
+ def is_answer_available(self):
+ """
+ Is student allowed to see an answer?
+ """
+ permission_functions = {
+ SHOWANSWER.NEVER: lambda: False,
+ SHOWANSWER.ATTEMPTED: lambda: self.is_attempted or self.has_submission_deadline_passed,
+ SHOWANSWER.ANSWERED: lambda: self.is_correct,
+ SHOWANSWER.CLOSED: lambda: self.closed,
+ SHOWANSWER.FINISHED: lambda: self.is_finished,
+ SHOWANSWER.CORRECT_OR_PAST_DUE: lambda: self.is_correct or self.has_submission_deadline_passed,
+ SHOWANSWER.PAST_DUE: lambda: self.has_submission_deadline_passed,
+ SHOWANSWER.ALWAYS: lambda: True,
+ SHOWANSWER.AFTER_ALL_ATTEMPTS: lambda: not self.attempts_remain,
+ SHOWANSWER.AFTER_ALL_ATTEMPTS_OR_CORRECT: lambda: not self.attempts_remain or self.is_correct,
+ SHOWANSWER.ATTEMPTED_NO_PAST_DUE: lambda: self.is_attempted,
+ }
+
+ if self.mode != Constants.ASSESSMENT_MODE:
+ return False
+
+ user_is_staff = False
+ if user_service := self.runtime.service(self, 'user'):
+ user_is_staff = user_service.get_current_user().opt_attrs.get(Constants.ATTR_KEY_USER_IS_STAFF)
+
+ if self.showanswer not in [SHOWANSWER.NEVER, ''] and user_is_staff:
+ # Staff users can see the answer unless the problem explicitly prevents it.
+ return True
+
+ check_permissions_function = permission_functions.get(self.showanswer, lambda: False)
+ return check_permissions_function()
+
@XBlock.handler
def student_view_user_state(self, request, suffix=''):
""" GET all user-specific data, and any applicable feedback """
@@ -819,7 +909,7 @@ def _drop_item_standard(self, item_attempt):
return {
'correct': is_correct,
'grade': self._get_weighted_earned_if_set(),
- 'finished': self._is_answer_correct(),
+ 'finished': self.is_correct,
'overall_feedback': self._present_feedback(overall_feedback),
'feedback': self._present_feedback([item_feedback])
}
@@ -869,7 +959,7 @@ def _mark_complete_and_publish_grade(self):
"""
# pylint: disable=fixme
# TODO: (arguable) split this method into "clean" functions (with no side effects and implicit state)
- # This method implicitly depends on self.item_state (via _is_answer_correct and _learner_raw_score)
+ # This method implicitly depends on self.item_state (via is_correct and _learner_raw_score)
# and also updates self.raw_earned if some conditions are met. As a result this method implies some order of
# invocation:
# * it should be called after learner-caused updates to self.item_state is applied
@@ -880,7 +970,7 @@ def _mark_complete_and_publish_grade(self):
# and help avoid bugs caused by invocation order violation in future.
# There's no going back from "completed" status to "incomplete"
- self.completed = self.completed or self._is_answer_correct() or not self.attempts_remain
+ self.completed = self.completed or self.is_correct or not self.attempts_remain
current_raw_earned = self._learner_raw_score()
# ... and from higher grade to lower
@@ -987,9 +1077,10 @@ def _get_user_state(self):
overall_feedback_msgs, __ = self._get_feedback()
if self.mode == Constants.STANDARD_MODE:
- is_finished = self._is_answer_correct()
+ is_finished = self.is_correct
else:
is_finished = not self.attempts_remain
+
return {
'items': item_state,
'finished': is_finished,
@@ -1188,7 +1279,8 @@ def _answer_correctness(self):
else:
return self.SOLUTION_PARTIAL
- def _is_answer_correct(self):
+ @property
+ def is_correct(self):
"""
Helper - checks if answer is correct
diff --git a/drag_and_drop_v2/public/js/drag_and_drop.js b/drag_and_drop_v2/public/js/drag_and_drop.js
index 254723e1e..27365f176 100644
--- a/drag_and_drop_v2/public/js/drag_and_drop.js
+++ b/drag_and_drop_v2/public/js/drag_and_drop.js
@@ -444,7 +444,7 @@ function DragAndDropTemplates(configuration) {
var showAnswerButton = null;
if (ctx.show_show_answer) {
var options = {
- disabled: ctx.showing_answer ? true : ctx.disable_show_answer_button,
+ disabled: !!ctx.showing_answer,
spinner: ctx.show_answer_spinner
};
showAnswerButton = sidebarButtonTemplate(
@@ -1883,8 +1883,8 @@ function DragAndDropBlock(runtime, element, configuration) {
state.grade = data.grade;
state.feedback = data.feedback;
state.overall_feedback = data.overall_feedback;
+ state.answer_available = data.answer_available;
state.last_action_correct = data.correct;
-
if (attemptsRemain()) {
data.misplaced_items.forEach(function(misplaced_item_id) {
delete state.items[misplaced_item_id]
@@ -1901,7 +1901,7 @@ function DragAndDropBlock(runtime, element, configuration) {
};
var canSubmitAttempt = function() {
- return Object.keys(state.items).length > 0 && isPastDue() && attemptsRemain() && !submittingLocation();
+ return Object.keys(state.items).length > 0 && !isPastDue() && attemptsRemain() && !submittingLocation();
};
var canReset = function() {
@@ -1921,16 +1921,17 @@ function DragAndDropBlock(runtime, element, configuration) {
};
var isPastDue = function () {
- return !configuration.has_deadline_passed;
+ return configuration.has_deadline_passed;
};
- var canShowAnswer = function() {
- return configuration.mode === DragAndDropBlock.ASSESSMENT_MODE && !attemptsRemain();
- };
var attemptsRemain = function() {
return !configuration.max_attempts || configuration.max_attempts > state.attempts;
};
+ var canShowAnswer = function() {
+ if(state.answer_available === undefined) return configuration.answer_available;
+ return state.answer_available;
+ }
var submittingLocation = function() {
var result = false;
@@ -2009,7 +2010,7 @@ function DragAndDropBlock(runtime, element, configuration) {
problem_html: configuration.problem_text,
show_problem_header: configuration.show_problem_header,
show_submit_answer: configuration.mode == DragAndDropBlock.ASSESSMENT_MODE,
- show_show_answer: configuration.mode == DragAndDropBlock.ASSESSMENT_MODE,
+ show_show_answer: canShowAnswer(),
target_img_src: configuration.target_img_expanded_url,
target_img_description: configuration.target_img_description,
display_zone_labels: configuration.display_zone_labels,
@@ -2026,7 +2027,6 @@ function DragAndDropBlock(runtime, element, configuration) {
overall_feedback_messages: state.overall_feedback,
explanation: state.explanation,
disable_reset_button: !canReset(),
- disable_show_answer_button: !canShowAnswer(),
disable_submit_button: !canSubmitAttempt(),
submit_spinner: state.submit_spinner,
showing_answer: state.showing_answer,
diff --git a/drag_and_drop_v2/public/js/drag_and_drop_edit.js b/drag_and_drop_v2/public/js/drag_and_drop_edit.js
index 8485f47e7..05ee45d3b 100644
--- a/drag_and_drop_v2/public/js/drag_and_drop_edit.js
+++ b/drag_and_drop_v2/public/js/drag_and_drop_edit.js
@@ -265,6 +265,10 @@ function DragAndDropEditBlock(runtime, element, params) {
$fbkTab
.on('change', '.problem-mode', _fn.build.form.problem.toggleAssessmentSettings);
+ $fbkTab.on('change', '.showanswer', function () {
+ _fn.build.$el.feedback.form.find('.showanswer-inherited').hide();
+ });
+
$zoneTab
.on('change', '.background-image-type input', _fn.build.form.zone.toggleAutozoneSettings)
.on('click', '.add-zone', function(e) {
@@ -725,6 +729,7 @@ function DragAndDropEditBlock(runtime, element, params) {
'display_name': $element.find('.display-name').val(),
'mode': $element.find(".problem-mode").val(),
'max_attempts': $element.find(".max-attempts").val(),
+ 'showanswer': $element.find(".showanswer").val(),
'show_title': $element.find('.show-title').is(':checked'),
'weight': $element.find('.weight').val(),
'problem_text': $element.find('.problem-text').val(),
diff --git a/drag_and_drop_v2/public/js/translations/ar/text.js b/drag_and_drop_v2/public/js/translations/ar/text.js
index d97da43e9..3bf840bad 100644
--- a/drag_and_drop_v2/public/js/translations/ar/text.js
+++ b/drag_and_drop_v2/public/js/translations/ar/text.js
@@ -160,7 +160,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "\u0644\u0648\u0646 \u0627\u0644\u062e\u0644\u0641\u064a\u0629 \u0644\u0644\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u0642\u0627\u0628\u0644\u0629 \u0644\u0644\u0633\u062d\u0628 \u0641\u064a \u0627\u0644\u0645\u0633\u0623\u0644\u0629 (\u0639\u0644\u0649 \u0633\u0628\u064a\u0644 \u0627\u0644\u0645\u062b\u0627\u0644: \"\u0623\u0632\u0631\u0642\" \u0623\u0648 '#0000ff').",
"The description of the problem or instructions shown to the learner.": "\u0648\u0635\u0641 \u0627\u0644\u0645\u0633\u0623\u0644\u0629 \u0623\u0648 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0645\u0648\u0636\u062d\u0629 \u0644\u0644\u0637\u0627\u0644\u0628.",
"The title of the drag and drop problem. The title is displayed to learners.": "\u0639\u0646\u0648\u0627\u0646 \u0645\u0633\u0623\u0644\u0629 \u0627\u0644\u0633\u062d\u0628 \u0648\u0627\u0644\u0625\u0633\u0642\u0627\u0637. \u064a\u0638\u0647\u0631 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0644\u0644\u0637\u0644\u0627\u0628.",
- "There are attempts remaining": "\u0647\u0646\u0627\u0643 \u0645\u062d\u0627\u0648\u0644\u0627\u062a \u0645\u062a\u0628\u0642\u064a\u0629",
"There was an error with your form.": "\u0644\u0642\u062f \u0643\u0627\u0646 \u0647\u0646\u0627\u0643 \u062e\u0637\u0623 \u0641\u064a \u0627\u0633\u062a\u0645\u0627\u0631\u062a\u0643.",
"This is a screen reader-friendly problem.": "\u0647\u0630\u0647 \u0627\u0644\u0645\u0633\u0627\u0644\u0629 \u062a\u0639\u0645\u0644 \u0639\u0644\u0649 \u0642\u0627\u0631\u0626 \u0627\u0644\u0634\u0627\u0634\u0629 \"Screen reader\".",
"This setting limits the number of items that can be dropped into a single zone.": "\u064a\u062d\u062f\u062f \u0647\u0630\u0627 \u0627\u0644\u0627\u0639\u062f\u0627\u062f \u0627\u0644\u062d\u062f \u0627\u0644\u0627\u0639\u0644\u0649 \u0645\u0646 \u0627\u0644\u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u0630\u064a \u064a\u0645\u0643\u0646 \u0627\u0636\u0627\u0641\u062a\u0647\u0627 \u0627\u0644\u0649 \u0627\u0644\u0645\u0646\u0637\u0642\u0629 \u0627\u0644\u0648\u0627\u062d\u062f\u0629.",
diff --git a/drag_and_drop_v2/public/js/translations/de/text.js b/drag_and_drop_v2/public/js/translations/de/text.js
index c74883498..8035c647f 100644
--- a/drag_and_drop_v2/public/js/translations/de/text.js
+++ b/drag_and_drop_v2/public/js/translations/de/text.js
@@ -146,7 +146,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "Die Hintergrundfarbe der beweglichen Auswahlm\u00f6glichkeit bei der Fragestellung (Beispiel \"blau\" oder \"#0000ff\" )",
"The description of the problem or instructions shown to the learner.": "Die Beschreibung des Problems oder die Anweisungen werden dem Lernenden angezeigt.",
"The title of the drag and drop problem. The title is displayed to learners.": "Dies ist der Titel der Drag&Drop Aufgabe. Dieser Titel wird den Teilnehmern angezeigt.",
- "There are attempts remaining": "Sie haben noch weitere Versuche ",
"There was an error with your form.": "Es gab einen formalen Fehler.",
"This is a screen reader-friendly problem.": "Dies ist eine Screen-Reader kompatible Aufgabe",
"This setting limits the number of items that can be dropped into a single zone.": "Mit dieser Einstellung k\u00f6nnen Sie die Anzahl der Elemente limitieren, welche in den einzelnen Ablagebereichen abgelegt werden k\u00f6nnen.",
diff --git a/drag_and_drop_v2/public/js/translations/eo/text.js b/drag_and_drop_v2/public/js/translations/eo/text.js
index e76cebdda..002c7b0e8 100644
--- a/drag_and_drop_v2/public/js/translations/eo/text.js
+++ b/drag_and_drop_v2/public/js/translations/eo/text.js
@@ -25,15 +25,22 @@
var newcatalog = {
"\n Please provide a description of the image for non-visual users.\n The description should provide sufficient information to allow anyone\n to solve the problem even without seeing the image.\n ": "\n Pl\u00e9\u00e4s\u00e9 pr\u00f6v\u00efd\u00e9 \u00e4 d\u00e9s\u00e7r\u00efpt\u00ef\u00f6n \u00f6f th\u00e9 \u00efm\u00e4g\u00e9 f\u00f6r n\u00f6n-v\u00efs\u00fc\u00e4l \u00fcs\u00e9rs.\n Th\u00e9 d\u00e9s\u00e7r\u00efpt\u00ef\u00f6n sh\u00f6\u00fcld pr\u00f6v\u00efd\u00e9 s\u00fcff\u00ef\u00e7\u00ef\u00e9nt \u00efnf\u00f6rm\u00e4t\u00ef\u00f6n t\u00f6 \u00e4ll\u00f6w \u00e4n\u00fd\u00f6n\u00e9\n t\u00f6 s\u00f6lv\u00e9 th\u00e9 pr\u00f6\u00dfl\u00e9m \u00e9v\u00e9n w\u00efth\u00f6\u00fct s\u00e9\u00e9\u00efng th\u00e9 \u00efm\u00e4g\u00e9.\n \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1\u2202\u03b9\u03c1\u03b9\u0455\u03b9\u00a2\u03b9\u03b7g \u0454\u0142\u03b9\u0442, \u0455\u0454\u2202 \u2202\u03c3 \u0454\u03b9\u03c5\u0455\u043c\u03c3\u2202 \u0442\u0454\u043c\u03c1\u03c3\u044f \u03b9\u03b7\u00a2\u03b9\u2202\u03b9\u2202\u03c5\u03b7\u0442 \u03c5\u0442 \u0142\u03b1\u0432\u03c3\u044f\u0454 \u0454\u0442 \u2202\u03c3\u0142\u03c3\u044f\u0454 \u043c\u03b1g\u03b7\u03b1 \u03b1\u0142\u03b9q\u03c5\u03b1. \u03c5\u0442 \u0454\u03b7\u03b9\u043c \u03b1\u2202 \u043c\u03b9\u03b7\u03b9\u043c \u03bd\u0454\u03b7\u03b9\u03b1\u043c, q\u03c5\u03b9\u0455 \u03b7\u03c3\u0455\u0442\u044f\u03c5\u2202 \u0454\u03c7\u0454\u044f\u00a2\u03b9\u0442\u03b1\u0442\u03b9\u03c3\u03b7 \u03c5\u0142\u0142\u03b1\u043c\u00a2#",
+ "(inherited from Advanced Settings)": "(\u00efnh\u00e9r\u00eft\u00e9d fr\u00f6m \u00c0dv\u00e4n\u00e7\u00e9d S\u00e9tt\u00efngs) \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442#",
", draggable": ", dr\u00e4gg\u00e4\u00dfl\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f #",
", draggable, grabbed": ", dr\u00e4gg\u00e4\u00dfl\u00e9, gr\u00e4\u00df\u00df\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, #",
", dropzone": ", dr\u00f6pz\u00f6n\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3#",
"Actions": "\u00c0\u00e7t\u00ef\u00f6ns \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c #",
"Add a zone": "\u00c0dd \u00e4 z\u00f6n\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3#",
"Add an item": "\u00c0dd \u00e4n \u00eft\u00e9m \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f #",
+ "After All Attempts": "\u00c0ft\u00e9r \u00c0ll \u00c0tt\u00e9mpts \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442#",
+ "After All Attempts or Correct": "\u00c0ft\u00e9r \u00c0ll \u00c0tt\u00e9mpts \u00f6r \u00c7\u00f6rr\u00e9\u00e7t \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2#",
+ "Always": "\u00c0lw\u00e4\u00fds \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5#",
"An error occurred. Unable to load drag and drop problem.": "\u00c0n \u00e9rr\u00f6r \u00f6\u00e7\u00e7\u00fcrr\u00e9d. \u00dbn\u00e4\u00dfl\u00e9 t\u00f6 l\u00f6\u00e4d dr\u00e4g \u00e4nd dr\u00f6p pr\u00f6\u00dfl\u00e9m. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#",
"An isosceles triangle with three layers of similar height. It is shown upright, so the widest layer is located at the bottom, and the narrowest layer is located at the top.": "\u00c0n \u00efs\u00f6s\u00e7\u00e9l\u00e9s tr\u00ef\u00e4ngl\u00e9 w\u00efth thr\u00e9\u00e9 l\u00e4\u00fd\u00e9rs \u00f6f s\u00efm\u00efl\u00e4r h\u00e9\u00efght. \u00cct \u00efs sh\u00f6wn \u00fcpr\u00efght, s\u00f6 th\u00e9 w\u00efd\u00e9st l\u00e4\u00fd\u00e9r \u00efs l\u00f6\u00e7\u00e4t\u00e9d \u00e4t th\u00e9 \u00df\u00f6tt\u00f6m, \u00e4nd th\u00e9 n\u00e4rr\u00f6w\u00e9st l\u00e4\u00fd\u00e9r \u00efs l\u00f6\u00e7\u00e4t\u00e9d \u00e4t th\u00e9 t\u00f6p. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1\u2202\u03b9\u03c1\u03b9\u0455\u03b9\u00a2\u03b9\u03b7g \u0454\u0142\u03b9\u0442, \u0455\u0454\u2202 \u2202\u03c3 \u0454\u03b9\u03c5\u0455\u043c\u03c3\u2202 \u0442\u0454\u043c\u03c1\u03c3\u044f \u03b9\u03b7\u00a2\u03b9\u2202\u03b9\u2202\u03c5\u03b7\u0442 \u03c5\u0442 \u0142\u03b1\u0432\u03c3\u044f\u0454 \u0454\u0442 \u2202\u03c3\u0142\u03c3\u044f\u0454 \u043c\u03b1g\u03b7\u03b1 \u03b1\u0142\u03b9q\u03c5\u03b1. \u03c5\u0442 \u0454\u03b7\u03b9\u043c \u03b1\u2202 \u043c\u03b9\u03b7\u03b9\u043c \u03bd\u0454\u03b7\u03b9\u03b1\u043c, q\u03c5\u03b9\u0455 \u03b7\u03c3\u0455\u0442\u044f\u03c5\u2202 \u0454\u03c7\u0454\u044f\u00a2\u03b9\u0442\u03b1\u0442\u03b9\u03c3\u03b7 \u03c5\u0142\u0142\u03b1\u043c\u00a2\u03c3 \u0142\u03b1\u0432\u03c3\u044f\u03b9\u0455 \u03b7\u03b9\u0455\u03b9 \u03c5\u0442 \u03b1\u0142\u03b9q\u03c5\u03b9\u03c1 \u0454\u03c7 \u0454\u03b1 \u00a2\u03c3\u043c\u043c\u03c3\u2202\u03c3 \u00a2\u03c3\u03b7\u0455\u0454q\u03c5\u03b1\u0442. \u2202\u03c5\u03b9\u0455 \u03b1\u03c5\u0442\u0454 \u03b9\u044f\u03c5\u044f\u0454 \u2202\u03c3\u0142\u03c3\u044f \u03b9\u03b7 \u044f\u0454\u03c1\u044f\u0454\u043d\u0454\u03b7\u2202\u0454\u044f\u03b9\u0442 \u03b9\u03b7 \u03bd\u03c3\u0142\u03c5\u03c1\u0442\u03b1\u0442\u0454 \u03bd\u0454\u0142\u03b9\u0442 \u0454\u0455\u0455\u0454 \u00a2\u03b9\u0142\u0142\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f\u0454 \u0454\u03c5 \u0192\u03c5g\u03b9\u03b1\u0442 \u03b7\u03c5\u0142\u0142\u03b1 \u03c1\u03b1\u044f\u03b9\u03b1\u0442\u03c5\u044f. \u0454\u03c7\u00a2\u0454\u03c1\u0442\u0454\u03c5\u044f \u0455\u03b9\u03b7\u0442 \u03c3\u00a2\u00a2\u03b1\u0454\u00a2\u03b1\u0442 \u00a2\u03c5\u03c1\u03b9\u2202\u03b1\u0442\u03b1\u0442 \u03b7\u03c3\u03b7 \u03c1\u044f\u03c3\u03b9\u2202\u0454\u03b7\u0442, \u0455\u03c5\u03b7\u0442 \u03b9\u03b7 \u00a2\u03c5\u0142\u03c1\u03b1 q\u03c5#",
+ "Answered": "\u00c0nsw\u00e9r\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202#",
"Assessment": "\u00c0ss\u00e9ssm\u00e9nt \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3#",
+ "Attempted": "\u00c0tt\u00e9mpt\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142#",
+ "Attempted or Past Due": "\u00c0tt\u00e9mpt\u00e9d \u00f6r P\u00e4st D\u00fc\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, #",
"Background Image": "B\u00e4\u00e7kgr\u00f6\u00fcnd \u00ccm\u00e4g\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c#",
"Background URL": "B\u00e4\u00e7kgr\u00f6\u00fcnd \u00dbRL \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442#",
"Background description": "B\u00e4\u00e7kgr\u00f6\u00fcnd d\u00e9s\u00e7r\u00efpt\u00ef\u00f6n \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2#",
@@ -41,8 +48,10 @@
"Cancel": "\u00c7\u00e4n\u00e7\u00e9l \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5#",
"Change background": "\u00c7h\u00e4ng\u00e9 \u00df\u00e4\u00e7kgr\u00f6\u00fcnd \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454#",
"Close": "\u00c7l\u00f6s\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455#",
+ "Closed": "\u00c7l\u00f6s\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5#",
"Continue": "\u00c7\u00f6nt\u00efn\u00fc\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202#",
"Correct": "\u00c7\u00f6rr\u00e9\u00e7t \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c #",
+ "Correct or Past Due": "\u00c7\u00f6rr\u00e9\u00e7t \u00f6r P\u00e4st D\u00fc\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442,#",
"Correct! This one belongs to The Bottom Zone.": "\u00c7\u00f6rr\u00e9\u00e7t! Th\u00efs \u00f6n\u00e9 \u00df\u00e9l\u00f6ngs t\u00f6 Th\u00e9 B\u00f6tt\u00f6m Z\u00f6n\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #",
"Correct! This one belongs to The Middle Zone.": "\u00c7\u00f6rr\u00e9\u00e7t! Th\u00efs \u00f6n\u00e9 \u00df\u00e9l\u00f6ngs t\u00f6 Th\u00e9 M\u00efddl\u00e9 Z\u00f6n\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #",
"Correct! This one belongs to The Top Zone.": "\u00c7\u00f6rr\u00e9\u00e7t! Th\u00efs \u00f6n\u00e9 \u00df\u00e9l\u00f6ngs t\u00f6 Th\u00e9 T\u00f6p Z\u00f6n\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #",
@@ -52,8 +61,10 @@
"\u00c7\u00f6rr\u00e9\u00e7tl\u00fd pl\u00e4\u00e7\u00e9d {correct_count} \u00eft\u00e9ms \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455#"
],
"DEPRECATED. Keeps maximum score achieved by student as a weighted value.": "D\u00c9PR\u00c9\u00c7\u00c0T\u00c9D. K\u00e9\u00e9ps m\u00e4x\u00efm\u00fcm s\u00e7\u00f6r\u00e9 \u00e4\u00e7h\u00ef\u00e9v\u00e9d \u00df\u00fd st\u00fcd\u00e9nt \u00e4s \u00e4 w\u00e9\u00efght\u00e9d v\u00e4l\u00fc\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f#",
+ "Default": "D\u00e9f\u00e4\u00fclt \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c #",
"Defines the number of points the problem is worth.": "D\u00e9f\u00efn\u00e9s th\u00e9 n\u00fcm\u00df\u00e9r \u00f6f p\u00f6\u00efnts th\u00e9 pr\u00f6\u00dfl\u00e9m \u00efs w\u00f6rth. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#",
"Defines the number of times a student can try to answer this problem. If the value is not set, infinite attempts are allowed.": "D\u00e9f\u00efn\u00e9s th\u00e9 n\u00fcm\u00df\u00e9r \u00f6f t\u00efm\u00e9s \u00e4 st\u00fcd\u00e9nt \u00e7\u00e4n tr\u00fd t\u00f6 \u00e4nsw\u00e9r th\u00efs pr\u00f6\u00dfl\u00e9m. \u00ccf th\u00e9 v\u00e4l\u00fc\u00e9 \u00efs n\u00f6t s\u00e9t, \u00efnf\u00efn\u00eft\u00e9 \u00e4tt\u00e9mpts \u00e4r\u00e9 \u00e4ll\u00f6w\u00e9d. \u2c60'\u03c3\u044f\u0454\u043c #",
+ "Defines when to show the answer to the problem. A default value can be set in Advanced Settings. To revert setting a custom value, choose the 'Default' option.": "D\u00e9f\u00efn\u00e9s wh\u00e9n t\u00f6 sh\u00f6w th\u00e9 \u00e4nsw\u00e9r t\u00f6 th\u00e9 pr\u00f6\u00dfl\u00e9m. \u00c0 d\u00e9f\u00e4\u00fclt v\u00e4l\u00fc\u00e9 \u00e7\u00e4n \u00df\u00e9 s\u00e9t \u00efn \u00c0dv\u00e4n\u00e7\u00e9d S\u00e9tt\u00efngs. T\u00f6 r\u00e9v\u00e9rt s\u00e9tt\u00efng \u00e4 \u00e7\u00fcst\u00f6m v\u00e4l\u00fc\u00e9, \u00e7h\u00f6\u00f6s\u00e9 th\u00e9 'D\u00e9f\u00e4\u00fclt' \u00f6pt\u00ef\u00f6n. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1\u2202\u03b9\u03c1\u03b9\u0455\u03b9\u00a2\u03b9\u03b7g \u0454\u0142\u03b9\u0442, \u0455\u0454\u2202 \u2202\u03c3 \u0454\u03b9\u03c5\u0455\u043c\u03c3\u2202 \u0442\u0454\u043c\u03c1\u03c3\u044f \u03b9\u03b7\u00a2\u03b9\u2202\u03b9\u2202\u03c5\u03b7\u0442 \u03c5\u0442 \u0142\u03b1\u0432\u03c3\u044f\u0454 \u0454\u0442 \u2202\u03c3\u0142\u03c3\u044f\u0454 \u043c\u03b1g\u03b7\u03b1 \u03b1\u0142\u03b9q\u03c5\u03b1. \u03c5\u0442 \u0454\u03b7\u03b9\u043c \u03b1\u2202 \u043c\u03b9\u03b7\u03b9\u043c \u03bd\u0454\u03b7\u03b9\u03b1\u043c, q\u03c5\u03b9\u0455 \u03b7\u03c3\u0455\u0442\u044f\u03c5\u2202 \u0454\u03c7\u0454\u044f\u00a2\u03b9\u0442\u03b1\u0442\u03b9\u03c3\u03b7 \u03c5\u0142\u0142\u03b1\u043c\u00a2\u03c3 \u0142\u03b1\u0432\u03c3\u044f\u03b9\u0455 \u03b7\u03b9\u0455\u03b9 \u03c5\u0442 \u03b1\u0142\u03b9q\u03c5\u03b9\u03c1 \u0454\u03c7 \u0454\u03b1 \u00a2\u03c3\u043c\u043c\u03c3\u2202\u03c3 \u00a2\u03c3\u03b7\u0455\u0454q\u03c5\u03b1\u0442. \u2202\u03c5\u03b9\u0455 \u03b1\u03c5\u0442\u0454 \u03b9\u044f\u03c5\u044f\u0454 \u2202\u03c3\u0142\u03c3\u044f \u03b9\u03b7 \u044f\u0454\u03c1\u044f\u0454\u043d\u0454\u03b7\u2202\u0454\u044f\u03b9\u0442 \u03b9\u03b7 \u03bd\u03c3\u0142\u03c5\u03c1\u0442\u03b1\u0442\u0454 \u03bd\u0454\u0142\u03b9\u0442 \u0454\u0455\u0455\u0454 \u00a2\u03b9\u0142\u0142\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f\u0454 \u0454\u03c5 \u0192\u03c5g\u03b9\u03b1\u0442 \u03b7\u03c5\u0142\u0142\u03b1 \u03c1\u03b1\u044f\u03b9\u03b1\u0442\u03c5\u044f. \u0454\u03c7\u00a2\u0454\u03c1\u0442\u0454\u03c5\u044f \u0455\u03b9\u03b7\u0442 \u03c3\u00a2\u00a2\u03b1\u0454\u00a2\u03b1\u0442 \u00a2\u03c5\u03c1\u03b9\u2202\u03b1\u0442\u03b1\u0442 \u03b7\u03c3\u03b7 \u03c1\u044f\u03c3\u03b9\u2202\u0454\u03b7\u0442, \u0455\u03c5\u03b7\u0442 \u03b9\u03b7 \u00a2\u03c5\u0142\u03c1\u03b1 q\u03c5\u03b9 \u03c3\u0192\u0192\u03b9\u00a2\u03b9\u03b1 \u2202\u0454\u0455\u0454\u044f\u03c5\u03b7#",
"Did not place {missing_count} required item": [
"D\u00efd n\u00f6t pl\u00e4\u00e7\u00e9 {missing_count} r\u00e9q\u00fc\u00efr\u00e9d \u00eft\u00e9m \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442#",
"D\u00efd n\u00f6t pl\u00e4\u00e7\u00e9 {missing_count} r\u00e9q\u00fc\u00efr\u00e9d \u00eft\u00e9ms \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454#"
@@ -73,6 +84,7 @@
"Feedback": "F\u00e9\u00e9d\u00df\u00e4\u00e7k \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202#",
"Final attempt was used, highest score is {score}": "F\u00efn\u00e4l \u00e4tt\u00e9mpt w\u00e4s \u00fcs\u00e9d, h\u00efgh\u00e9st s\u00e7\u00f6r\u00e9 \u00efs {score} \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #",
"Final feedback": "F\u00efn\u00e4l f\u00e9\u00e9d\u00df\u00e4\u00e7k \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442#",
+ "Finished": "F\u00efn\u00efsh\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202#",
"For example, 'http://example.com/background.png' or '/static/background.png'.": "F\u00f6r \u00e9x\u00e4mpl\u00e9, 'http://\u00e9x\u00e4mpl\u00e9.\u00e7\u00f6m/\u00df\u00e4\u00e7kgr\u00f6\u00fcnd.png' \u00f6r '/st\u00e4t\u00ef\u00e7/\u00df\u00e4\u00e7kgr\u00f6\u00fcnd.png'. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442#",
"Generate image and zones": "G\u00e9n\u00e9r\u00e4t\u00e9 \u00efm\u00e4g\u00e9 \u00e4nd z\u00f6n\u00e9s \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7#",
"Generate image automatically": "G\u00e9n\u00e9r\u00e4t\u00e9 \u00efm\u00e4g\u00e9 \u00e4\u00fct\u00f6m\u00e4t\u00ef\u00e7\u00e4ll\u00fd \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2#",
@@ -112,6 +124,7 @@
],
"Mode": "M\u00f6d\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9#",
"Navigate using TAB and SHIFT+TAB to the appropriate dropzone and press CTRL+M once more to drop it here.": "N\u00e4v\u00efg\u00e4t\u00e9 \u00fcs\u00efng T\u00c0B \u00e4nd SH\u00ccFT+T\u00c0B t\u00f6 th\u00e9 \u00e4ppr\u00f6pr\u00ef\u00e4t\u00e9 dr\u00f6pz\u00f6n\u00e9 \u00e4nd pr\u00e9ss \u00c7TRL+M \u00f6n\u00e7\u00e9 m\u00f6r\u00e9 t\u00f6 dr\u00f6p \u00eft h\u00e9r\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1#",
+ "Never": "N\u00e9v\u00e9r \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455#",
"No items placed here": "N\u00f6 \u00eft\u00e9ms pl\u00e4\u00e7\u00e9d h\u00e9r\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, #",
"No, this item does not belong here. Try again.": "N\u00f6, th\u00efs \u00eft\u00e9m d\u00f6\u00e9s n\u00f6t \u00df\u00e9l\u00f6ng h\u00e9r\u00e9. Tr\u00fd \u00e4g\u00e4\u00efn. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f \u03b1#",
"Number of attempts learner used": "N\u00fcm\u00df\u00e9r \u00f6f \u00e4tt\u00e9mpts l\u00e9\u00e4rn\u00e9r \u00fcs\u00e9d \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442#",
@@ -119,6 +132,7 @@
"Number of columns and rows.": "N\u00fcm\u00df\u00e9r \u00f6f \u00e7\u00f6l\u00fcmns \u00e4nd r\u00f6ws. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454#",
"Number of rows": "N\u00fcm\u00df\u00e9r \u00f6f r\u00f6ws \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442#",
"Of course it goes here! It goes anywhere!": "\u00d6f \u00e7\u00f6\u00fcrs\u00e9 \u00eft g\u00f6\u00e9s h\u00e9r\u00e9! \u00cct g\u00f6\u00e9s \u00e4n\u00fdwh\u00e9r\u00e9! \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #",
+ "Past Due": "P\u00e4st D\u00fc\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202#",
"Placed in: {zone_title}": "Pl\u00e4\u00e7\u00e9d \u00efn: {zone_title} \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442#",
"Please check over your submission.": "Pl\u00e9\u00e4s\u00e9 \u00e7h\u00e9\u00e7k \u00f6v\u00e9r \u00fd\u00f6\u00fcr s\u00fc\u00dfm\u00efss\u00ef\u00f6n. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442#",
"Please check the values you entered.": "Pl\u00e9\u00e4s\u00e9 \u00e7h\u00e9\u00e7k th\u00e9 v\u00e4l\u00fc\u00e9s \u00fd\u00f6\u00fc \u00e9nt\u00e9r\u00e9d. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5#",
@@ -134,6 +148,7 @@
"Saving": "S\u00e4v\u00efng \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5#",
"Show \"Problem\" heading": "Sh\u00f6w \"Pr\u00f6\u00dfl\u00e9m\" h\u00e9\u00e4d\u00efng \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2#",
"Show Answer": "Sh\u00f6w \u00c0nsw\u00e9r \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f #",
+ "Show answer": "Sh\u00f6w \u00e4nsw\u00e9r \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f #",
"Show title": "Sh\u00f6w t\u00eftl\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3#",
"Size of a single zone in pixels.": "S\u00efz\u00e9 \u00f6f \u00e4 s\u00efngl\u00e9 z\u00f6n\u00e9 \u00efn p\u00efx\u00e9ls. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454#",
"Some of your answers were not correct.": "S\u00f6m\u00e9 \u00f6f \u00fd\u00f6\u00fcr \u00e4nsw\u00e9rs w\u00e9r\u00e9 n\u00f6t \u00e7\u00f6rr\u00e9\u00e7t. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f#",
@@ -147,10 +162,10 @@
"The Bottom Zone": "Th\u00e9 B\u00f6tt\u00f6m Z\u00f6n\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1#",
"The Middle Zone": "Th\u00e9 M\u00efddl\u00e9 Z\u00f6n\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1#",
"The Top Zone": "Th\u00e9 T\u00f6p Z\u00f6n\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455#",
+ "The answer is unavailable": "Th\u00e9 \u00e4nsw\u00e9r \u00efs \u00fcn\u00e4v\u00e4\u00efl\u00e4\u00dfl\u00e9 \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455#",
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "Th\u00e9 \u00df\u00e4\u00e7kgr\u00f6\u00fcnd \u00e7\u00f6l\u00f6r \u00f6f dr\u00e4gg\u00e4\u00dfl\u00e9 \u00eft\u00e9ms \u00efn th\u00e9 pr\u00f6\u00dfl\u00e9m (\u00e9x\u00e4mpl\u00e9: '\u00dfl\u00fc\u00e9' \u00f6r '#0000ff'). \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2#",
"The description of the problem or instructions shown to the learner.": "Th\u00e9 d\u00e9s\u00e7r\u00efpt\u00ef\u00f6n \u00f6f th\u00e9 pr\u00f6\u00dfl\u00e9m \u00f6r \u00efnstr\u00fc\u00e7t\u00ef\u00f6ns sh\u00f6wn t\u00f6 th\u00e9 l\u00e9\u00e4rn\u00e9r. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #",
"The title of the drag and drop problem. The title is displayed to learners.": "Th\u00e9 t\u00eftl\u00e9 \u00f6f th\u00e9 dr\u00e4g \u00e4nd dr\u00f6p pr\u00f6\u00dfl\u00e9m. Th\u00e9 t\u00eftl\u00e9 \u00efs d\u00efspl\u00e4\u00fd\u00e9d t\u00f6 l\u00e9\u00e4rn\u00e9rs. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5#",
- "There are attempts remaining": "Th\u00e9r\u00e9 \u00e4r\u00e9 \u00e4tt\u00e9mpts r\u00e9m\u00e4\u00efn\u00efng \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2#",
"There was an error with your form.": "Th\u00e9r\u00e9 w\u00e4s \u00e4n \u00e9rr\u00f6r w\u00efth \u00fd\u00f6\u00fcr f\u00f6rm. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442#",
"This is a screen reader-friendly problem.": "Th\u00efs \u00efs \u00e4 s\u00e7r\u00e9\u00e9n r\u00e9\u00e4d\u00e9r-fr\u00ef\u00e9ndl\u00fd pr\u00f6\u00dfl\u00e9m. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442\u03c5\u044f #",
"This setting limits the number of items that can be dropped into a single zone.": "Th\u00efs s\u00e9tt\u00efng l\u00efm\u00efts th\u00e9 n\u00fcm\u00df\u00e9r \u00f6f \u00eft\u00e9ms th\u00e4t \u00e7\u00e4n \u00df\u00e9 dr\u00f6pp\u00e9d \u00efnt\u00f6 \u00e4 s\u00efngl\u00e9 z\u00f6n\u00e9. \u2c60'\u03c3\u044f\u0454\u043c \u03b9\u03c1\u0455\u03c5\u043c \u2202\u03c3\u0142\u03c3\u044f \u0455\u03b9\u0442 \u03b1\u043c\u0454\u0442, \u00a2\u03c3\u03b7\u0455\u0454\u00a2\u0442\u0454\u0442#",
diff --git a/drag_and_drop_v2/public/js/translations/es_419/text.js b/drag_and_drop_v2/public/js/translations/es_419/text.js
index de4e9ece4..c2ee705b5 100644
--- a/drag_and_drop_v2/public/js/translations/es_419/text.js
+++ b/drag_and_drop_v2/public/js/translations/es_419/text.js
@@ -154,7 +154,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "El color de fondo de los elementos arrastrables (ejemplo: 'blue' o '#0000ff').",
"The description of the problem or instructions shown to the learner.": "Descripci\u00f3n del problema o instrucciones mostradas al estudiante",
"The title of the drag and drop problem. The title is displayed to learners.": "El t\u00edtulo del problema de arrastrar y soltar. El t\u00edtulo se muestra a los alumnos.",
- "There are attempts remaining": "Todav\u00eda hay intentos pendientes",
"There was an error with your form.": "Ha habido un error con su formulario.",
"This is a screen reader-friendly problem.": "Este tipo de problema es compatible con los lectores de pantalla.",
"This setting limits the number of items that can be dropped into a single zone.": "Esta configuraci\u00f3n limita el n\u00famero de items que pueden ser colocados en una zona",
diff --git a/drag_and_drop_v2/public/js/translations/fr/text.js b/drag_and_drop_v2/public/js/translations/fr/text.js
index a8fc5291c..5879c1a7b 100644
--- a/drag_and_drop_v2/public/js/translations/fr/text.js
+++ b/drag_and_drop_v2/public/js/translations/fr/text.js
@@ -151,7 +151,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "La couleur de fond des \u00e9l\u00e9ments glissables dans l'exercice (par exemple\u00a0: 'bleu' ou '#0000ff').",
"The description of the problem or instructions shown to the learner.": "La description du probl\u00e8me ou les instructions affich\u00e9es \u00e0 l'\u00e9tudiant.",
"The title of the drag and drop problem. The title is displayed to learners.": "Le titre de l'exercice de glisser-d\u00e9placer. Ce titre est affich\u00e9 aux \u00e9tudiants.",
- "There are attempts remaining": "Il vous reste des tentatives",
"There was an error with your form.": "Il y avait une erreur avec votre formulaire.",
"This is a screen reader-friendly problem.": "Il s'agit d'un probl\u00e8me facile \u00e0 lire \u00e0 l'\u00e9cran.",
"This setting limits the number of items that can be dropped into a single zone.": "Ce param\u00e8tre limite le nombre d'\u00e9l\u00e9ments pouvant \u00eatre d\u00e9pos\u00e9s dans une seule zone.",
diff --git a/drag_and_drop_v2/public/js/translations/he/text.js b/drag_and_drop_v2/public/js/translations/he/text.js
index 6f157e7ed..7ebc02713 100644
--- a/drag_and_drop_v2/public/js/translations/he/text.js
+++ b/drag_and_drop_v2/public/js/translations/he/text.js
@@ -117,7 +117,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "\u05e6\u05d1\u05e2 \u05d4\u05e8\u05e7\u05e2 \u05e9\u05dc \u05d4\u05e4\u05e8\u05d9\u05d8\u05d9\u05dd \u05d4\u05e0\u05d9\u05ea\u05e0\u05d9\u05dd \u05dc\u05d2\u05e8\u05d9\u05e8\u05d4 \u05d1\u05d1\u05e2\u05d9\u05d4 (\u05dc\u05d3\u05d5\u05d2\u05de\u05d4: '\u05db\u05d7\u05d5\u05dc' \u05d0\u05d5 '#0000ff').",
"The description of the problem or instructions shown to the learner.": "\u05ea\u05d9\u05d0\u05d5\u05e8 \u05d4\u05d1\u05e2\u05d9\u05d4 \u05d0\u05d5 \u05d4\u05d5\u05e8\u05d0\u05d5\u05ea \u05d4\u05de\u05d5\u05e6\u05d2\u05d5\u05ea \u05dc\u05dc\u05d5\u05de\u05d3.",
"The title of the drag and drop problem. The title is displayed to learners.": "\u05d4\u05db\u05d5\u05ea\u05e8\u05ea \u05e9\u05dc \u05d1\u05e2\u05d9\u05d9\u05ea \u05d4\u05d2\u05e8\u05d9\u05e8\u05d4 \u05d5\u05d4\u05e9\u05d7\u05e8\u05d5\u05e8. \u05d4\u05db\u05d5\u05ea\u05e8\u05ea \u05de\u05d5\u05e6\u05d2\u05ea \u05dc\u05dc\u05d5\u05de\u05d3\u05d9\u05dd.",
- "There are attempts remaining": "\u05e0\u05d5\u05ea\u05e8\u05d5 \u05e2\u05d3\u05d9\u05d9\u05dd \u05e0\u05e1\u05d9\u05d5\u05e0\u05d5\u05ea",
"There was an error with your form.": "\u05d4\u05d9\u05ea\u05d4 \u05e9\u05d2\u05d9\u05d0\u05d4 \u05d1\u05d8\u05d5\u05e4\u05e1 \u05e9\u05dc\u05da.",
"Title": "\u05db\u05d5\u05ea\u05e8\u05ea",
"Unknown DnDv2 mode {mode} - course is misconfigured": "\u05de\u05e6\u05d1 DnDv2 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2 {mode} - \u05d4\u05e7\u05d5\u05e8\u05e1 \u05d0\u05d9\u05e0\u05d5 \u05de\u05d5\u05d2\u05d3\u05e8",
diff --git a/drag_and_drop_v2/public/js/translations/it/text.js b/drag_and_drop_v2/public/js/translations/it/text.js
index 22ba1e7c3..c7adaf2d8 100644
--- a/drag_and_drop_v2/public/js/translations/it/text.js
+++ b/drag_and_drop_v2/public/js/translations/it/text.js
@@ -72,7 +72,6 @@
"Standard": "Standard",
"Submitting": "In fase di invio",
"The description of the problem or instructions shown to the learner.": "Descrizione del problema o istruzioni mostrate al discente.",
- "There are attempts remaining": "Ci sono ancora tentativi rimanenti",
"Title": "Titolo",
"Your highest score is {score}": "Il tuo punteggio pi\u00f9 alto \u00e8 {score}",
"Zone borders": "Bordi della zona",
diff --git a/drag_and_drop_v2/public/js/translations/ja/text.js b/drag_and_drop_v2/public/js/translations/ja/text.js
index 56c5ace21..569ca18c7 100644
--- a/drag_and_drop_v2/public/js/translations/ja/text.js
+++ b/drag_and_drop_v2/public/js/translations/ja/text.js
@@ -121,7 +121,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "\u554f\u984c\u306e\u30c9\u30e9\u30c3\u30b0\u53ef\u80fd\u306a\u30a2\u30a4\u30c6\u30e0\u306e\u80cc\u666f\u8272 (\u4f8b\uff1a'blue'\u307e\u305f\u306f'#0000ff')\u3002",
"The description of the problem or instructions shown to the learner.": "\u53d7\u8b1b\u8005\u306b\u8868\u793a\u3059\u308b\u554f\u984c\u307e\u305f\u306f\u6307\u793a\u306e\u8aac\u660e\u3002",
"The title of the drag and drop problem. The title is displayed to learners.": "\u30c9\u30e9\u30c3\u30b0\u30a2\u30f3\u30c9\u30c9\u30ed\u30c3\u30d7\u306e\u554f\u984c\u306e\u30bf\u30a4\u30c8\u30eb\u3002\u30bf\u30a4\u30c8\u30eb\u306f\u53d7\u8b1b\u8005\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002",
- "There are attempts remaining": "\u8a66\u884c\u56de\u6570\u304c\u6b8b\u3063\u3066\u3044\u307e\u3059\u3002",
"There was an error with your form.": "\u30d5\u30a9\u30fc\u30e0\u3067\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002",
"Title": "\u4ef6\u540d",
"Unknown DnDv2 mode {mode} - course is misconfigured": "\u4e0d\u660e\u306aDnDv2\u30e2\u30fc\u30c9 {mode} - \u8b1b\u5ea7\u306e\u8a2d\u5b9a\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002",
diff --git a/drag_and_drop_v2/public/js/translations/ko/text.js b/drag_and_drop_v2/public/js/translations/ko/text.js
index 1e8825848..26222ecec 100644
--- a/drag_and_drop_v2/public/js/translations/ko/text.js
+++ b/drag_and_drop_v2/public/js/translations/ko/text.js
@@ -141,7 +141,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "\ubb38\uc81c\uc758 \ub04c\uae30 \uac00\ub2a5\ud55c \ud56d\ubaa9\uc758 \ubc30\uacbd \uc0c9\uc0c1 (\uc608\uc2dc: '\ud30c\ub791' \ub610\ub294 '#0000ff').",
"The description of the problem or instructions shown to the learner.": "\ud559\uc2b5\uc790\uc5d0\uac8c \ubcf4\uc5ec\uc9c0\ub294 \ubb38\uc81c \ub610\ub294 \uc9c0\uc2dc\uc0ac\ud56d\uc758 \ub0b4\uc6a9",
"The title of the drag and drop problem. The title is displayed to learners.": "\ub04c\uc5b4\ub193\uae30 \ubb38\uc81c\uc758 \uc81c\ubaa9. \uc81c\ubaa9\uc740 \ud559\uc2b5\uc790\uc5d0\uac8c \uacf5\uac1c\ub429\ub2c8\ub2e4.",
- "There are attempts remaining": "\ub0a8\uc740 \uc2dc\ub3c4 \ud69f\uc218\uac00 \uc788\uc2b5\ub2c8\ub2e4.",
"There was an error with your form.": "\ud615\uc2dd\uc5d0 \uc624\ub958\uac00 \uc788\uc2b5\ub2c8\ub2e4.",
"This is a screen reader-friendly problem.": "\uc774 \ubb38\uc81c\ub294 \ud654\uba74 \uc774\uc6a9\uc790\uc5d0\uac8c \uc801\ud569\ud55c \ubb38\uc81c\uc785\ub2c8\ub2e4.",
"This setting limits the number of items that can be dropped into a single zone.": "\uc774 \uc124\uc815\uc740 \ud558\ub098\uc758 \uc601\uc5ed\uc5d0 \ub193\uc77c \uc218 \uc788\ub294 \ud56d\ubaa9\uc758 \ucd5c\ub300 \uac1c\uc218\ub97c \uc124\uc815 \ud569\ub2c8\ub2e4.",
diff --git a/drag_and_drop_v2/public/js/translations/pl/text.js b/drag_and_drop_v2/public/js/translations/pl/text.js
index 5df05b87b..4a4390d82 100644
--- a/drag_and_drop_v2/public/js/translations/pl/text.js
+++ b/drag_and_drop_v2/public/js/translations/pl/text.js
@@ -132,7 +132,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "Kolor t\u0142a dopasowywanych element\u00f3w (np. '#0000ff')",
"The description of the problem or instructions shown to the learner.": "Opis \u0107wiczenia i/lub instrukcje dla student\u00f3w.",
"The title of the drag and drop problem. The title is displayed to learners.": "Tytu\u0142 tego \u0107wiczenia, widoczny dla student\u00f3w.",
- "There are attempts remaining": "Dost\u0119pne s\u0105 dodatkowe pr\u00f3by",
"There was an error with your form.": "Wyst\u0105pi\u0142 b\u0142\u0105d z przesy\u0142aniem odpowiedzi.",
"Title": "Tytu\u0142",
"Unknown DnDv2 mode {mode} - course is misconfigured": "Nieznany tryb DnDv2 {mode} - kurs skonfigurowany nieprawid\u0142owo",
diff --git a/drag_and_drop_v2/public/js/translations/pt_BR/text.js b/drag_and_drop_v2/public/js/translations/pt_BR/text.js
index a5bf9bd68..293b24d85 100644
--- a/drag_and_drop_v2/public/js/translations/pt_BR/text.js
+++ b/drag_and_drop_v2/public/js/translations/pt_BR/text.js
@@ -149,7 +149,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "A cor do plano de fundo de itens que podem ser arrastados no problema (por exemplo: 'azul' ou '#0000ff').",
"The description of the problem or instructions shown to the learner.": "A descri\u00e7\u00e3o do problema ou instru\u00e7\u00f5es exibidas ao aluno.",
"The title of the drag and drop problem. The title is displayed to learners.": "O t\u00edtulo do problema de arraste e solte. O t\u00edtulo \u00e9 exibido aos alunos.",
- "There are attempts remaining": "H\u00e1 tentativas restantes",
"There was an error with your form.": "Ocorreu um erro com seu formul\u00e1rio.",
"This is a screen reader-friendly problem.": "Esta \u00e9 uma tela de leitura f\u00e1cil de problemas.",
"This setting limits the number of items that can be dropped into a single zone.": "Esta configura\u00e7\u00e3o limita o n\u00famero de itens que podem ser largados de uma \u00fanica zona.",
diff --git a/drag_and_drop_v2/public/js/translations/pt_PT/text.js b/drag_and_drop_v2/public/js/translations/pt_PT/text.js
index 801dff190..8ed102a1e 100644
--- a/drag_and_drop_v2/public/js/translations/pt_PT/text.js
+++ b/drag_and_drop_v2/public/js/translations/pt_PT/text.js
@@ -150,7 +150,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "A cor de fundo dos itens arrast\u00e1veis no problema (exemplo: 'blue' ou '#0000ff').",
"The description of the problem or instructions shown to the learner.": "A descri\u00e7\u00e3o do problema ou instru\u00e7\u00f5es que o estudante v\u00ea.",
"The title of the drag and drop problem. The title is displayed to learners.": "O t\u00edtulo do problema de arrastar e soltar. O t\u00edtulo \u00e9 vis\u00edvel para os estudantes.",
- "There are attempts remaining": "Ainda h\u00e1 tentativas dispon\u00edveis",
"There was an error with your form.": "Houve um erro com o seu formul\u00e1rio.",
"This is a screen reader-friendly problem.": "Este \u00e9 um problema amig\u00e1vel para os leitores de ecr\u00e3.",
"This setting limits the number of items that can be dropped into a single zone.": "Esta configura\u00e7\u00e3o limita o n\u00famero de itens que podem ser colocados numa \u00fanica zona.",
diff --git a/drag_and_drop_v2/public/js/translations/ru/text.js b/drag_and_drop_v2/public/js/translations/ru/text.js
index 57045248a..65c7e849f 100644
--- a/drag_and_drop_v2/public/js/translations/ru/text.js
+++ b/drag_and_drop_v2/public/js/translations/ru/text.js
@@ -133,7 +133,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "\u0424\u043e\u043d \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0437\u0430\u0434\u0430\u0447\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 'blue' \u0438\u043b\u0438 '#0000ff').",
"The description of the problem or instructions shown to the learner.": "\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u044f, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u044e.",
"The title of the drag and drop problem. The title is displayed to learners.": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430 \u043f\u0435\u0440\u0435\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0435 \u0434\u043b\u044f \u0441\u043b\u0443\u0448\u0430\u0442\u0435\u043b\u0435\u0439.",
- "There are attempts remaining": "\u041e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438",
"There was an error with your form.": "\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0430\u0448\u0435\u0439 \u0444\u043e\u0440\u043c\u044b.",
"Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
"Unknown DnDv2 mode {mode} - course is misconfigured": "\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c {mode} \u0437\u0430\u0434\u0430\u0447\u0438 DnDv2 \u2014 \u043a\u0443\u0440\u0441 \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d",
diff --git a/drag_and_drop_v2/public/js/translations/zh_CN/text.js b/drag_and_drop_v2/public/js/translations/zh_CN/text.js
index 9b1620466..018864192 100644
--- a/drag_and_drop_v2/public/js/translations/zh_CN/text.js
+++ b/drag_and_drop_v2/public/js/translations/zh_CN/text.js
@@ -121,7 +121,6 @@
"The background color of draggable items in the problem (example: 'blue' or '#0000ff').": "\u9898\u76ee\u4e2d\u53ef\u62d6\u62fd\u9879\u7684\u80cc\u666f\u989c\u8272(\u4f8b\u5982: 'blue' or '#0000ff')\u3002",
"The description of the problem or instructions shown to the learner.": "\u5b66\u5458\u53ef\u89c1\u7684\u9898\u76ee\u63cf\u8ff0\u6216\u4f5c\u7b54\u6307\u5f15\u3002",
"The title of the drag and drop problem. The title is displayed to learners.": "\u62d6\u653e\u95ee\u9898\u7684\u6807\u9898\u3002\u5411\u5b66\u5458\u663e\u793a\u6807\u9898\u3002",
- "There are attempts remaining": "\u672a\u4f7f\u7528\u5b8c\u6240\u6709\u7b54\u9898\u673a\u4f1a",
"There was an error with your form.": "\u60a8\u7684\u8868\u683c\u6709\u4e00\u4e2a\u9519\u8bef\u3002",
"Title": "\u6807\u9898",
"Unknown DnDv2 mode {mode} - course is misconfigured": "\u672a\u77e5DnDv2\u6a21\u5f0f{mode} - \u8bfe\u7a0b\u914d\u7f6e\u9519\u8bef",
diff --git a/drag_and_drop_v2/templates/html/drag_and_drop_edit.html b/drag_and_drop_v2/templates/html/drag_and_drop_edit.html
index 0e17511c3..d243f6743 100644
--- a/drag_and_drop_v2/templates/html/drag_and_drop_edit.html
+++ b/drag_and_drop_v2/templates/html/drag_and_drop_edit.html
@@ -49,6 +49,20 @@
{% trans "Basic Settings" %}
{% trans fields.max_attempts.help %}
+
+ {% trans fields.showanswer.display_name %} {% if not showanswer_set %} {% trans "(inherited from Advanced Settings)" %}{% endif %}
+
+ {% for field_value in fields.showanswer.values %}
+
+ {{ field_value.display_name }}
+
+ {% endfor %}
+
+
+
+ {% trans fields.showanswer.help %}
+
+
{% trans fields.weight.display_name %}
diff --git a/drag_and_drop_v2/translations/ar/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/ar/LC_MESSAGES/text.mo
index 1b7b7ccd0..8b05bf1d2 100644
Binary files a/drag_and_drop_v2/translations/ar/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/ar/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/ar/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/ar/LC_MESSAGES/text.po
index 39efbf0a7..b04bffd92 100644
--- a/drag_and_drop_v2/translations/ar/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/ar/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# 6e68c7971a89e50e680ae9444d303c8f, 2016
# Ali Hasan , 2019
@@ -18,7 +18,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: shefaa abu jabel , 2016\n"
"Language-Team: Arabic (http://www.transifex.com/open-edx/xblocks/language/ar/)\n"
@@ -113,169 +113,228 @@ msgstr "قم بجر هذه العناصر إلى الصورة أعلاه."
msgid "Good work! You have completed this drag and drop problem."
msgstr "أحسنت صنعاً! لقد استكملت حل مسألة السحب والإسقاط."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "العنوان"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "عنوان مسألة السحب والإسقاط. يظهر العنوان للطلاب."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "سحب وإسقاط"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "الحالة"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "الحالة العادية: تقدم المسألة رداً فورياً في كل مرة يضع فيها الطالب عنصر داخل منطقة الهدف. حالة التقييم: تقدم المسألة رداً فقط بعد أن يضع الطالب جميع العناصر المتاحة داخل مناطق الهدف."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "قياسي"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "تقييم"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "أقصى عدد للمحاولات"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "يحدد عدد المرات التي يستطيع فيها الطالب محاولة الإجابة عن هذه المسألة. في حالة عدم تحديد قيمة، فإنه يُسمح بعدد لا نهائي من المحاولات."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "عرض العنوان"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "عرض العنوان للطلاب؟"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "نص المسألة"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "وصف المسألة أو التعليمات الموضحة للطالب."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "إظهار عنوان \"المسألة\""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "عرض عنوان \"المسألة\" فوق نص المسألة؟"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "وزن المسألة"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "يحدد عدد النقاط التي تستحقها المسألة."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "لون خلفية العنصر"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "لون الخلفية للعناصر القابلة للسحب في المسألة (على سبيل المثال: \"أزرق\" أو '#0000ff')."
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "لون نص العنصر"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "لون النص المستخدم مع العناصر القابلة للسحب (على سبيل المثال: \"أبيض\" أو '#ffffff')"
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr "لقد وصلت الحد الاعلى من العناصر في المنطقة الواحدة."
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr "يحدد هذا الاعداد الحد الاعلى من العناصر الذي يمكن اضافتها الى المنطقة الواحدة."
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "بيانات المسألة"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "المعلومات بشأن الأوضاع الحالية للعناصر التي أسقطها الطالب في الصورة المستهدفة."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "عدد المحاولات التي استخدمها الطالب"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "يوضح ما إذا كان الطالب قد أنهى المسالة مرة واحدة على الأقل"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr "يحافظ على الدرجة القصوى التي يحققها الطالب كقيمة أولية بين ٠ و ١"
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "وضع DnDv2 غير معروف {mode} - خطأ في تكوين الدورة"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "يجب استدعاء معالج show_answer فقط لوضعية التقييم"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "هناك محاولات متبقية"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "يجب عدم طلب مسؤول do_attempt إلا في حالة التقييم"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "لقد وصلت إلى أقصى عدد من المحاولات"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr "لقد انقضى الموعد النهائي للتقديم."
@@ -287,89 +346,93 @@ msgstr "تحميل مسألة السحب والإسقاط."
msgid "Basic Settings"
msgstr "الإعدادات الأساسية"
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "تقييم أولي"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "تقييم نهائي"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "المناطق"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr "صورة الخلفية"
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr "تقديم صورة مخصصة"
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr "توليد الصورة تلقائيا"
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "URL للخلفية"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "تغيير الخلفية"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "على سبيل المثال، 'http://example.com/background.png' أو '/static/background.png'."
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr "مخطط المناطق"
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr "عدد الأعمدة"
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr "عدد الصفوف"
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr "عدد الأعمدة والصفوف."
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr "حجم المنطقة"
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr "عرض المنطقة"
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr "ارتفاع المنطقة"
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr "حجم المنطقة بالبكسل."
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr "توليد الصور والمناطق"
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "وصف الخلفية"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -378,55 +441,55 @@ msgid ""
" "
msgstr "\n الرجاء تقديم شرح للصورة للمستخدمين غير المرئيين.\n من المفترض أن يوفر الشرح معلومات كافية للسماح لأي شخص \n بحل المسألة حتى بدون رؤية الصورة.\n "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "ملصقات المناطق"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "عرض أسماء الملصقات على الصورة"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "حدود المنطقة"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "عرض حدود المنطقة على الصورة"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "تحديدات المناطق"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "إضافة منطقة"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "العناصر"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr "تعريف العنصر"
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "إضافة عنصر"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "استمرار"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "حفظ"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "إلغاء"
@@ -705,8 +768,8 @@ msgstr "لقد حدث خطأ. تعذر تحميل مسألة السحب والإ
msgid "You cannot add any more items to this zone."
msgstr "لا يمكنك إضافة المزيد من العناصر إلى هذه المنطقة."
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "لقد كان هناك خطأ في استمارتك."
@@ -714,7 +777,7 @@ msgstr "لقد كان هناك خطأ في استمارتك."
msgid "Please check over your submission."
msgstr "الرجاء التحقق من إرسالك."
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] "منطقة {num}"
@@ -724,10 +787,10 @@ msgstr[3] "منطقة {num}"
msgstr[4] "منطقة {num}"
msgstr[5] "منطقة {num}"
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr "يرجى التحقق من القيم التي أدخلتها."
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "جاري الحفظ"
diff --git a/drag_and_drop_v2/translations/de/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/de/LC_MESSAGES/text.mo
index 23fe9880e..986f25786 100644
Binary files a/drag_and_drop_v2/translations/de/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/de/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/de/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/de/LC_MESSAGES/text.po
index 5e2dbb89b..55e11b1c9 100644
--- a/drag_and_drop_v2/translations/de/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/de/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Stefania Trabucchi , 2018
# Julia Bernhard , 2018
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: OpenCraft OpenCraft , 2021\n"
"Language-Team: German (Germany) (http://www.transifex.com/open-edx/xblocks/language/de_DE/)\n"
@@ -106,169 +106,228 @@ msgstr "Ziehen Sie die Auswahlmöglichkeit/en auf das obere Bild."
msgid "Good work! You have completed this drag and drop problem."
msgstr "Gut gemacht! Sie haben die Drag & Drop Fragestellung gelöst."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Titel"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "Dies ist der Titel der Drag&Drop Aufgabe. Dieser Titel wird den Teilnehmern angezeigt."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Drag and Drop"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Modus"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "Standardmodus: die Fragestellung liefert sofortiges Feedback jedes Mal wenn der Lernende eine Auswahlmöglichkeit in den Ablagebereich zieht. Assessmentmodus: die Fragestellung liefert Feedback nur nachdem ein Lernender alle verfügbaren Auswahlmöglichkeit/en in den Ablagebereich gezogen hat."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "Standard"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "assessment"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "Maximale Versuche"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "Legt fest, wie oft ein Teilnehmer versuchen kann, diese Fragestellung zu lösen. Ist der Wert nicht gesetzt, sind unendlich viele Versuche erlaubt."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Titel anzeigen"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "Soll der Titel für die Teilnehmer angezeigt werden?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "Fragestellungstext"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "Die Beschreibung des Problems oder die Anweisungen werden dem Lernenden angezeigt."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "Anzeigen der Fragestellung/ Titel"
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "Anzeigen des Titels/ Fragestellung/ über den Fragestellungstext?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "Gewichtung der Fragestellung"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "Definiert die Anzahl der Punkte, wie die Fragestellung gewertet wird."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "Hintergrundfarbe der Auswahlmöglichkeit/en"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "Die Hintergrundfarbe der beweglichen Auswahlmöglichkeit bei der Fragestellung (Beispiel \"blau\" oder \"#0000ff\" )"
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "Textfarbe der Auswahlmöglichkeit"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "Textfarbe der verschiebbaren Auswahlmöglichkeit (Beispiel: \"weiß\" oder \"#fffff\")"
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr "Maximale Anzahl an Elementen pro Ablagebereich"
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr "Mit dieser Einstellung können Sie die Anzahl der Elemente limitieren, welche in den einzelnen Ablagebereichen abgelegt werden können."
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "Daten der Fragestellung"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "Informationen über aktuelle Positionen der Auswahlmöglichkeit/en, die ein Teilnehmer ins Zielbild gezogen hat."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "Anzahl der Versuche des Teilnehmers"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "Gibt an, ob ein Lernender die Fragestellung mindestens einmal gelöst hat. "
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr "VERALTET. Hält die maximal erreichte Punktzahl eines Teilnehmers mittels eines festen Wertes fest."
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr "Hält die maximal erreichte Punktzahl eines Teilnehmers mittels eines Wertes zwischen 0 und 1 fest."
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "Unknown DnDv2 mode {mode} - Kurs ist falsch konfiguriert"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "show_answer handler sollten nur für den Assessmentmodus augerufen werden"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "Sie haben noch weitere Versuche "
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "do_attempt handler sollte nur für den Assessmentmodus aufgerufen werden"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "Maximale Anzahl der erreichten Versuche"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr "Einreichungsfrist ist abgelaufen."
@@ -280,89 +339,93 @@ msgstr "Laden der Drag&Drop Aufgabe"
msgid "Basic Settings"
msgstr "Grundeinstellungen"
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "Einleitendes Feedback"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "Abschließendes Feedback"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "Ablagebereiche"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr "Hintergrundbild"
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr "Benutzerdefiniertes Bild einfügen"
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr "Bild automatisch generieren"
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "Hintergrund URL"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Hintergrund ändern"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "Zum Beispiel 'http://beispiel.com/image.png' or '/static/image.png'"
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr "Layout der Ablagebereiche"
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr "Anzahl der Spalten"
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr "Anzahl der Zeilen"
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr "Anzahl der Spalten und Zeilen."
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr "Größe des Ablagebereichs"
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr "Breite des Ablagebereichs"
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr "Höhe des Ablagebereichs"
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr "Größe eines einzelnen Ablagebereiches in Pixel."
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr "Bild und Ablagebereiche generieren"
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Hintergrundinformationen"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -371,55 +434,55 @@ msgid ""
" "
msgstr "\n Bitte geben Sie eine Beschreibung des Bildes für nicht-visuelle Benutzer an.\n Die Beschreibung sollte genügend Informationen enthalten, damit jeder\n die Fragestellung lösen kann, auch ohne das Bild zu sehen. "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "Beschriftungen der Ablagebereiche"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "Beschriftung auf dem Bild anzeigen"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "Rahmen der Ablagebereiche"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "Rahmen auf dem Bild anzeigen "
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "Definitionen der Ablagebereiche"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "Einen Ablagebereich hinzufügen"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "Auswahlmöglichkeit/en"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr "Element Definitionen"
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "Auswahlmöglichkeit/en hinzufügen"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "Fortsetzen"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Speichern"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "Abbrechen"
@@ -666,8 +729,8 @@ msgstr "Es ist ein Fehler aufgetreten. Drag&Drop-Fragestellung kann nicht gelade
msgid "You cannot add any more items to this zone."
msgstr "Sie können nicht mehr Elemente in diesem Ablagebereich ablegen."
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "Es gab einen formalen Fehler."
@@ -675,16 +738,16 @@ msgstr "Es gab einen formalen Fehler."
msgid "Please check over your submission."
msgstr "Bitte überprüfen Sie Ihre Eingaben."
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] "Ablagebereich {num}"
msgstr[1] "Ablagebereiche {num}"
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr "Bitte überprüfen Sie die eingegebenen Werte."
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "Speichert"
diff --git a/drag_and_drop_v2/translations/en/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/en/LC_MESSAGES/text.po
index eae927f5c..e9c06514c 100644
--- a/drag_and_drop_v2/translations/en/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/en/LC_MESSAGES/text.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 21:51+0200\n"
+"POT-Creation-Date: 2022-10-13 22:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -103,168 +103,227 @@ msgstr ""
msgid "Good work! You have completed this drag and drop problem."
msgstr ""
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr ""
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr ""
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr ""
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr ""
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr ""
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr ""
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr ""
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr ""
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the "
"value is not set, infinite attempts are allowed."
msgstr ""
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr ""
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr ""
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr ""
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr ""
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr ""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr ""
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default' "
+"option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr ""
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr ""
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr ""
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr ""
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr ""
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr ""
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr ""
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr ""
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr ""
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr ""
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid "Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr ""
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr ""
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -276,88 +335,92 @@ msgstr ""
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or '/static/background.png'."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for "
@@ -369,55 +432,55 @@ msgid ""
" "
msgstr ""
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr ""
@@ -656,8 +719,8 @@ msgstr ""
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr ""
@@ -665,16 +728,16 @@ msgstr ""
msgid "Please check over your submission."
msgstr ""
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
msgstr[1] ""
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr ""
diff --git a/drag_and_drop_v2/translations/eo/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/eo/LC_MESSAGES/text.mo
index d6353ec91..72feda4b9 100644
Binary files a/drag_and_drop_v2/translations/eo/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/eo/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/eo/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/eo/LC_MESSAGES/text.po
index 947c4613f..09114b6b8 100644
--- a/drag_and_drop_v2/translations/eo/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/eo/LC_MESSAGES/text.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 21:51+0200\n"
+"POT-Creation-Date: 2022-10-13 22:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -215,6 +215,73 @@ msgstr ""
"Dïspläý thé héädïng \"Prößlém\" äßövé thé prößlém téxt? Ⱡ'σяєм ιρѕυм ∂σłσя "
"ѕιт αмєт, ¢σηѕє¢тєтυя α#"
+#: drag_and_drop_v2.py
+msgid "Show answer"
+msgstr "Shöw änswér Ⱡ'σяєм ιρѕυм ∂σłσя #"
+
+#: drag_and_drop_v2.py
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+"Défïnés whén tö shöw thé änswér tö thé prößlém. À défäült välüé çän ßé sét "
+"ïn Àdvänçéd Séttïngs. Tö révért séttïng ä çüstöm välüé, çhöösé thé 'Défäült'"
+" öptïön. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ "
+"єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм"
+" νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα "
+"¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт"
+" єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт "
+"¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυη#"
+
+#: drag_and_drop_v2.py
+msgid "Default"
+msgstr "Défäült Ⱡ'σяєм ιρѕυм #"
+
+#: drag_and_drop_v2.py
+msgid "Always"
+msgstr "Àlwäýs Ⱡ'σяєм ιρѕυ#"
+
+#: drag_and_drop_v2.py
+msgid "Answered"
+msgstr "Ànswéréd Ⱡ'σяєм ιρѕυм ∂#"
+
+#: drag_and_drop_v2.py
+msgid "Attempted or Past Due"
+msgstr "Àttémptéd ör Päst Düé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #"
+
+#: drag_and_drop_v2.py
+msgid "Closed"
+msgstr "Çlöséd Ⱡ'σяєм ιρѕυ#"
+
+#: drag_and_drop_v2.py
+msgid "Finished"
+msgstr "Fïnïshéd Ⱡ'σяєм ιρѕυм ∂#"
+
+#: drag_and_drop_v2.py
+msgid "Correct or Past Due"
+msgstr "Çörréçt ör Päst Düé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#"
+
+#: drag_and_drop_v2.py
+msgid "Past Due"
+msgstr "Päst Düé Ⱡ'σяєм ιρѕυм ∂#"
+
+#: drag_and_drop_v2.py
+msgid "Never"
+msgstr "Névér Ⱡ'σяєм ιρѕ#"
+
+#: drag_and_drop_v2.py
+msgid "After All Attempts"
+msgstr "Àftér Àll Àttémpts Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#"
+
+#: drag_and_drop_v2.py
+msgid "After All Attempts or Correct"
+msgstr "Àftér Àll Àttémpts ör Çörréçt Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#"
+
+#: drag_and_drop_v2.py
+msgid "Attempted"
+msgstr "Àttémptéd Ⱡ'σяєм ιρѕυм ∂σł#"
+
#: drag_and_drop_v2.py
msgid "Problem Weight"
msgstr "Prößlém Wéïght Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#"
@@ -330,8 +397,8 @@ msgstr ""
"∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#"
#: drag_and_drop_v2.py
-msgid "There are attempts remaining"
-msgstr "Théré äré ättémpts rémäïnïng Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢#"
+msgid "The answer is unavailable"
+msgstr "Thé änswér ïs ünäväïläßlé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#"
#: drag_and_drop_v2.py
msgid "do_attempt handler should only be called for assessment mode"
@@ -355,6 +422,11 @@ msgstr "Löädïng dräg änd dröp prößlém. Ⱡ'σяєм ιρѕυм ∂σł
msgid "Basic Settings"
msgstr "Bäsïç Séttïngs Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#"
+#: templates/html/drag_and_drop_edit.html
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+"(ïnhérïtéd fröm Àdvänçéd Séttïngs) Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєт#"
+
#: templates/html/drag_and_drop_edit.html
msgid "Introductory feedback"
msgstr "Ìntrödüçtörý féédßäçk Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #"
diff --git a/drag_and_drop_v2/translations/es_419/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/es_419/LC_MESSAGES/text.mo
index afe4dc36e..543c8dac0 100644
Binary files a/drag_and_drop_v2/translations/es_419/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/es_419/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/es_419/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/es_419/LC_MESSAGES/text.po
index 88e81ecca..a864e4636 100644
--- a/drag_and_drop_v2/translations/es_419/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/es_419/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Albeiro Gonzalez , 2018
# Ana Garcia, 2022
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: Yovany Alexander Álvarez Correa , 2018\n"
"Language-Team: Spanish (Latin America) (http://www.transifex.com/open-edx/xblocks/language/es_419/)\n"
@@ -110,169 +110,228 @@ msgstr "Arrastra los elementos y ubicalos en la imagen de abajo"
msgid "Good work! You have completed this drag and drop problem."
msgstr "Buen trabajo! Has completado este ejercicio de arrastrar y soltar"
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Título"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "El título del problema de arrastrar y soltar. El título se muestra a los alumnos."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Arrastrar y soltar"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Modo"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "Modo Estándar: el problema proporciona retroalimentación inmediata cada vez que el estudiante suelta un elemento en una zona. Modo evaluación: el problema proporciona retroalimentación sólo después de que el estudiante suelte todos los elementos arrastrables en las zonas."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "Estándar"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "Evaluación"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "Máximos intentos"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "Define el número de veces que un estudiante puede intentar responder a este problema. Si el valor no está establecido, se permiten intentos infinitos."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Mostrar título"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "¿Mostrar el título al estudiante?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "Texto del problema"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "Descripción del problema o instrucciones mostradas al estudiante"
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "Mostrar \"Problema\" en el encabezado"
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "¿Mostrar la palabra \"Problema\" sobre el texto del problema?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "Valor del problema"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "Define el número de puntos que vale este problema."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "Color de fondo para los items"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "El color de fondo de los elementos arrastrables (ejemplo: 'blue' o '#0000ff')."
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "Color de texto para los items"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "Color de texto para los elementos arrastrables (ejemplo: 'white' o '#ffffff')."
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr "Máximo de objetos por zona"
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr "Esta configuración limita el número de items que pueden ser colocados en una zona"
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "Datos del problema"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr "Información sobre las zonas, los ítems, los comentarios, la explicación y la imagen de fondo de este problema. Esta información se deriva de la entrada que el autor del curso proporciona a través del editor interactivo cuando configura el problema."
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "Información sobre las posiciones actuales de los elementos que un alumno ha soltado en la imagen de destino."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "Número de intentos de estudiante usados"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "Indica si un alumno ha completado el problema al menos una vez"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr "DEPRECADO. Mantiene el máximo puntaje alcanzado por un estudiante como un valor ponderado."
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr "Mantiene el máximo puntaje alcanzado por un estudiante como un número entre 0 y 1."
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr "Máximo puntaje posible para este problema, como un número entre 0 y 1."
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "Modo DnDv2 desconocido {mode} - el curso está mal configurado"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "El handlre show_answer sólo debe ser llamado para el modo calificable"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "Todavía hay intentos pendientes"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "El hendler do_attempt sólo debe ser llamado para el modo calificable"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "Máximo número de intentos alcanzado"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr "La fecha límite de envío ya pasó."
@@ -284,89 +343,93 @@ msgstr "Cargando problema de arrastrar y soltar."
msgid "Basic Settings"
msgstr "Configuraciones básicas"
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "Retroalimentación inicial"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "Retroalimentación final"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr "Texto explicativo"
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "Zonas"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr "Imagen de fondo"
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr "Incluya una imagen personalizada"
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr "Generar imagen automáticamente"
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "URL de imagen de fondo"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Cambiar imagen de fondo"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "Por ejemplo, 'http://example.com/background.png' o '/static/background.png'."
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr "Distribución de zonas"
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr "Número de columnas"
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr "Número de filas"
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr "Número de columnas y filas."
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr "Tamaño de la zona"
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr "Ancho de la zona"
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr "Altura de la zona"
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr "Tamaño de la zona en pixeles."
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr "Generar imagen y zonas"
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Descripción del fondo"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -375,55 +438,55 @@ msgid ""
" "
msgstr "\n Proporcione una descripción de la imagen para usuarios con discapacidad visual.\n La descripción debe proporcionar información suficiente para que cualquiera \n pueda resolver el problema incluso sin ver la imagen.\n "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "Etiquetas de las zonas"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "Mostrar los nombres de las zonas en la imagen"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "Margenes de la zona"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "Mostrar los margenes de la zona en la imagen"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr "Mostrar los bordes de la zona al arrastrar un elemento"
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "Definición de las zonas"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "Añadir zona"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "Items"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr "Definición de objetos"
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "Añadir un item"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "Continuar"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Guardar"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "Cancelar"
@@ -678,8 +741,8 @@ msgstr "Ocurrió un error. No fue posible cargar el problema de arrastrar y solt
msgid "You cannot add any more items to this zone."
msgstr "No puedes añadir más objetos a esta zona."
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "Ha habido un error con su formulario."
@@ -687,17 +750,17 @@ msgstr "Ha habido un error con su formulario."
msgid "Please check over your submission."
msgstr "Por favor revise nuevamente su envío"
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] "Zona {num}"
msgstr[1] "Zona {num}"
msgstr[2] "Zona {num}"
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr "Por favor revise los valores ingresados."
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "Guardando"
diff --git a/drag_and_drop_v2/translations/fr/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/fr/LC_MESSAGES/text.mo
index 80307dc7f..0b27b38c7 100644
Binary files a/drag_and_drop_v2/translations/fr/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/fr/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/fr/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/fr/LC_MESSAGES/text.po
index 6f8bdbe24..89fe0fbee 100644
--- a/drag_and_drop_v2/translations/fr/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/fr/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# 7d6b04fff6aa1b6964c4cb709cdbd24b_0b8e9dc <0f5d8258cb2bd641cccbffd85d9d9e7c_938679>, 2021
# Abdessamad Derraz , 2021-2022
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: OpenCraft OpenCraft , 2021\n"
"Language-Team: French (http://www.transifex.com/open-edx/xblocks/language/fr/)\n"
@@ -109,169 +109,228 @@ msgstr "Glissez cet élément sur l'image ci-dessus."
msgid "Good work! You have completed this drag and drop problem."
msgstr "Bon travail! Vous avez complété cet exercice de glisser-déposer."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Titre"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "Le titre de l'exercice de glisser-déplacer. Ce titre est affiché aux étudiants."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Glisser Déposer"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Mode"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "Mode standard : l'exercice fait immédiatement un commentaire à chaque fois que l'étudiant déplace un élément dans une zone cible. Mode d'évaluation : l'exercice fait un commentaire une fois que l'étudiant déplace tous les éléments disponibles dans les zones cibles."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "Standard"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "Évaluation"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "Nombre d'essais maximum"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "Définit le nombre de fois qu'un étudiant peut essayer de répondre au problème. Si aucune valeur n'est précisée, un nombre infini d'essais est autorisé."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Afficher le titre"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "Afficher le titre aux étudiants ?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "Problème écrit"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "La description du problème ou les instructions affichées à l'étudiant."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "Montrer l'en-tête du « Problème »"
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "Afficher l'en-tête « Problème » au dessus du texte du problème ?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "Poids du problème"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "Définir le nombre de points pour lequel ce problème compte."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "Élément couleur de fond"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "La couleur de fond des éléments glissables dans l'exercice (par exemple : 'bleu' ou '#0000ff')."
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "Élément couleur du texte"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "La couleur de texte à employer pour les éléments glissables (par exemple : 'blanc' ou '#ffffff')."
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr "Nombre maximum d'éléments par zone"
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr "Ce paramètre limite le nombre d'éléments pouvant être déposés dans une seule zone."
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "Données du problème"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "Information à propos des emplacements actuels d'éléments déposés par l'étudiant sur l'image cible."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "Nombre de tentatives faites par l'étudiant"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "Indique si l'étudiant a terminé ce problème au moins une fois"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr "DÉCONSEILLÉ. Conserve le score maximum atteint par l'étudiant en tant que valeur pondérée."
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr "Conserve le score maximum atteint par l'étudiant en tant que valeur brute entre 0 et 1."
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr "Note maximale disponible du problème sous forme de valeur brute entre 0 et 1."
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "Mode {mode} DnDv2 inconnu - cours mal-configuré"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "responsable de réponses à montrer show_answer à contacter uniquement en mode d'évaluation"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "Il vous reste des tentatives"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "responsable de tentatives faites do_attempt à contacter uniquement en mode d'évaluation"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "Nombre maximum de tentatives atteint"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr "La date limite de soumission est passée."
@@ -283,89 +342,93 @@ msgstr "Chargement de l'exercice de glisser-déplasser."
msgid "Basic Settings"
msgstr "Paramètres de base"
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "Commentaire d'instructions"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "Commentaire final"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "Zones"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr "Image de fond"
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr "Fournissez une image personnalisée"
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr "Générer automatiquement une image"
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "URL du fond"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Changer de fond"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "Par exemple, « http://example.com/background.png » ou « /static/background.png »."
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr "Disposition des zones"
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr "Le nombre de colonnes"
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr "Le nombre de rangées"
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr "Le nombre de colonnes et de rangées."
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr "Taille de la zone"
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr "Largeur de la zone"
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr "Hauteur de la zone"
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr "Taille d'une seule zone en pixels."
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr "Générer l'image et les zones"
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Description du fond"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -374,55 +437,55 @@ msgid ""
" "
msgstr "\n Veuillez fournir une description de l'image pour les utilisateurs.\n La description devrait être assez complète pour permettre à quiconque\n de résoudre ce problème même sans avoir vu l'image.\n "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "Labels des zones"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "Afficher les noms de label sur l'image"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "Bordures de zone"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "Afficher les bordures de zone sur l'image"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "Définition des zones"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "Ajouter une zone"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "Éléments"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr "Définitions des éléments"
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "Ajouter un élément"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "Continuer"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Enregistrer"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "Annuler"
@@ -677,8 +740,8 @@ msgstr "Une erreur est survenue. Impossible de charger l'exercice de glisser-dé
msgid "You cannot add any more items to this zone."
msgstr "Vous ne pouvez plus ajouter d’éléments à cette zone."
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "Il y avait une erreur avec votre formulaire."
@@ -686,17 +749,17 @@ msgstr "Il y avait une erreur avec votre formulaire."
msgid "Please check over your submission."
msgstr "Veuillez vérifier vos réponses"
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] "Zone {num}"
msgstr[1] "Zone {num}"
msgstr[2] "Zone {num}"
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr "Veuillez vérifier les valeurs que vous avez saisies."
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "Enregistrement"
diff --git a/drag_and_drop_v2/translations/fr_CA/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/fr_CA/LC_MESSAGES/text.mo
index ff7d212f7..39dfc5b6a 100644
Binary files a/drag_and_drop_v2/translations/fr_CA/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/fr_CA/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/fr_CA/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/fr_CA/LC_MESSAGES/text.po
index bc0a5158a..5b1193116 100644
--- a/drag_and_drop_v2/translations/fr_CA/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/fr_CA/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Keivan Farzaneh , 2017
# Pierre Mailhot , 2017,2020-2022
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: Keivan Farzaneh , 2017\n"
"Language-Team: French (Canada) (http://www.transifex.com/open-edx/xblocks/language/fr_CA/)\n"
@@ -104,169 +104,228 @@ msgstr "Faites glisser les éléments sur l'image ci-dessus."
msgid "Good work! You have completed this drag and drop problem."
msgstr "Bon travail! Vous avez complété ce problème de glisser-déposer."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Titre"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "Le titre du problème de glisser-déposer. Le titre est affiché aux apprenants."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Glisser Déposer"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Mode"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "Mode standard: ce problème fournit une rétroaction immédiate à chaque fois qu'un apprenant dépose un élément sur une zone cible. Mode d'évaluation: ce problème fournit une rétroaction seulement après qu'un apprenant ait déposé tous les éléments disponibles sur les zones cibles."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "Standard"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "Évaluation"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "Nombre maximal de tentatives"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "Définit le nombre de fois où un étudiant peut tenter de répondre à ce problème. Si cette valeur n'est pas définie, un nombre infini de tentatives est permis."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Afficher le titre"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "Afficher le titre à l'apprenant?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "Texte du problème"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "La description du problème ou les instructions montrées à l'apprenant."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "Montrer l'en-tête « Problème »"
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "Afficher l'en-tête « Problème » au-dessus du texte du problème?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "Poids du problème"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "Définit le nombre de points que le problème vaut."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "Couleur d'arrière-plan de l'élément"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "Couleur d'arrière-plan des éléments à glisser-déposer dans le problème (exemple: 'blue' ou '#0000ff')."
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "Couleur du texte de l'élément"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "Couleur du texte à utiliser pour les éléments à glisser-déposer (exemple: 'white' ou '#ffffff')."
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr "Nombre maximum d'éléments par zone"
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr "Ce paramètre limite le nombre d'éléments pouvant être déposés dans une seule zone."
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "Données du problème"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr "Informations sur les zones, les éléments, les commentaires, les explications et le fonds d'écran pour ce problème. Ces informations sont dérivées des données fournies par l'auteur du cours via l'éditeur interactif lors de la configuration du problème."
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "Informations concernant les positions actuelles des éléments qu'un apprenant a déposés sur l'image cible."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "Nombre de tentatives utilisées par l'apprenant"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "Indique si un apprenant a complété le problème au moins une fois"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr "DÉCONSEILLÉ. Conserve le score maximum atteint par l'étudiant en tant que valeur pondérée."
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr "Conserve le score maximum atteint par l'étudiant en tant que valeur brute entre 0 et 1."
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr "Note maximale disponible du problème sous forme de valeur brute entre 0 et 1."
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "Mode {mode} DnDv2 inconnu - le cours est mal configuré"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "show_answer ne doit être utilisé que pour le mode d'évaluation"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "Il reste des tentatives"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "do_attempt ne doit être utilisé que pour le mode d'évaluation"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "Nombre maximal de tentatives atteint"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr "La date limite de soumission est passée."
@@ -278,89 +337,93 @@ msgstr "Chargement du problème de glisser-déposer."
msgid "Basic Settings"
msgstr "Paramètres de base"
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "Rétroaction préliminaire"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "Rétroaction finale"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr "Texte d'explication"
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "Zones"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr "Image de fond"
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr "Fournissez une image personnalisée"
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr "Générer automatiquement une image"
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "URL de fond"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Changer le fond"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "Par exemple, 'http://example.com/background.png' ou '/static/background.png'."
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr "Disposition des zones"
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr "Le nombre de colonnes"
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr "Le nombre de rangées"
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr "Le nombre de colonnes et de rangées."
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr "Taille de la zone"
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr "Largeur de la zone"
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr "Hauteur de la zone"
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr "Taille d'une seule zone en pixels."
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr "Générer l'image et les zones"
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Description du fond"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -369,55 +432,55 @@ msgid ""
" "
msgstr "\nSVP veuillez fournir une description de l'image pour les utilisateurs non visuels. La description doit fournir suffisamment d'informations pour permettre à n'importe qui de résoudre le problème, même sans voir l'image."
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "Étiquettes des zones"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "Afficher les noms des étiquettes sur l'image"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "Bordures des zones"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "Afficher les bordures des zones sur l'image"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr "Afficher les bordures de zone lors du déplacement d'un élément"
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "Définitions des zones"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "Ajouter une zone"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "Éléments"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr "Définitions des éléments"
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "Ajouter un élément"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "Continuer"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Enregistrer"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "Annuler"
@@ -672,8 +735,8 @@ msgstr "Une erreur est survenue. Impossible de charger le problème de glisser-d
msgid "You cannot add any more items to this zone."
msgstr "Vous ne pouvez plus ajouter d’éléments à cette zone."
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "Une erreur s'est produite avec votre formulaire."
@@ -681,17 +744,17 @@ msgstr "Une erreur s'est produite avec votre formulaire."
msgid "Please check over your submission."
msgstr "Veuillez SVP vérifier votre soumission."
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] "Zone {num}"
msgstr[1] "Zone {num}"
msgstr[2] "Zone {num}"
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr "Veuillez vérifier les valeurs que vous avez saisies."
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "Sauvegarde en cours"
diff --git a/drag_and_drop_v2/translations/he/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/he/LC_MESSAGES/text.mo
index d3549157f..77911ba7c 100644
Binary files a/drag_and_drop_v2/translations/he/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/he/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/he/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/he/LC_MESSAGES/text.po
index 10ca3c1bb..bfe59f174 100644
--- a/drag_and_drop_v2/translations/he/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/he/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# e2f_HE c1 , 2016
# Omar Al-Ithawi , 2019
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: qualityalltext , 2016\n"
"Language-Team: Hebrew (http://www.transifex.com/open-edx/xblocks/language/he/)\n"
@@ -105,169 +105,228 @@ msgstr "גרור את הפריטים אל התמונה למעלה."
msgid "Good work! You have completed this drag and drop problem."
msgstr "עבודה טובה! השלמת את בעיית הגרירה והשחרור הזו."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "כותרת"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "הכותרת של בעיית הגרירה והשחרור. הכותרת מוצגת ללומדים."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "גרירה ושחרור"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "מצב"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "מצב תקני: הבעיה מספקת משוב מיידי בכל פעם שתלמיד משחרר פריט באזור יעד. מצב הערכה: הבעיה מספקת משוב רק לאחר שתלמיד משחרר את כל הפריטים הזמינים באזורי היעד."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "תקן"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "הערכה"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "מספר נסיונות מרבי"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "מגדיר את מספר הפעמים בהן סטודנט יכול לנסות לענות על בעיה זו. אם הערך לא נקבע, יתאפשרו אינסוף ניסיונות."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "הצג כותרת"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "האם להציג את הכותרת ללומד?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "טקסט הבעיה"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "תיאור הבעיה או הוראות המוצגות ללומד."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "הצג כותרת \"בעיה\""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "האם להציג את הכותרת \"בעיה\" מעל לטקסט הבעיה?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr ""
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr ""
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "צבע הרקע של הפריט"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "צבע הרקע של הפריטים הניתנים לגרירה בבעיה (לדוגמה: 'כחול' או '#0000ff')."
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "צבע הטקסט של הפריט"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "צבע הטקסט לשימוש עבור פריטים הניתנים לגרירה (דוגמה: 'לבן' או '#ffffff')."
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "נתוני הבעיה"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "מידע אודות מיקום נוכחי של פריטים שצריך הלומד לשחרר על תמונת המטרה."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "מספר הנסיונות שהלומד השתמש בהם"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "מציין האם השלים הלומד את הבעיה לפחות פעם אחת"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "מצב DnDv2 לא ידוע {mode} - הקורס אינו מוגדר"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "מדריך הראה_תשובה צריך להיות במצב הערכה בלבד"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "נותרו עדיים נסיונות"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "יש לקרוא למבצע do_attempt רק עבור מצב הערכה"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "אירעה חריגה ממספר הניסיונות המרבי"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -279,89 +338,93 @@ msgstr "העלאת בעיית גרירה ושחרור."
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "משוב פתיחה"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "משוב סופי"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "אזורים"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "כתובת URL של הרקע"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "שינוי רקע"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "לדוגמה, 'http://example.com/background.png' או '/static/background.png'."
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "תיאור רקע"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -370,55 +433,55 @@ msgid ""
" "
msgstr "\n נא ספק תיאור של התמונה למשתמשים חסרי יכולת ויזואלית.\n התיאור חייב לספק מידע במידה מספקת ולאפשר לכל אחד\n לפתור את הבעיה גם מבלי לראות את התמונה.\n "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "תוויות האזור"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "יש להציג את שמות התווית על התמונה"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "גבולות האזור"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "הצג את גבולות האזור על התמונה"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "הפרדות אזור"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "הוסף אזור"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "פריטים"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "הוסף פריט"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "המשך"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "שמירה"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "ביטול"
@@ -681,8 +744,8 @@ msgstr "אירעה שגיאה. לא ניתן להעלות בעיית גרירה
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "היתה שגיאה בטופס שלך."
@@ -690,7 +753,7 @@ msgstr "היתה שגיאה בטופס שלך."
msgid "Please check over your submission."
msgstr "בדוק שנית את השליחה."
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
@@ -698,10 +761,10 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "שומר"
diff --git a/drag_and_drop_v2/translations/hi/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/hi/LC_MESSAGES/text.po
index f9f329edc..528ff696c 100644
--- a/drag_and_drop_v2/translations/hi/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/hi/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Harshitha Parupudi , 2020
# Priyanka M, 2019
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: Priyanka M, 2019\n"
"Language-Team: Hindi (http://www.transifex.com/open-edx/xblocks/language/hi/)\n"
@@ -105,169 +105,228 @@ msgstr "ऊपर की छवि पर आइटम खींचें।"
msgid "Good work! You have completed this drag and drop problem."
msgstr ""
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "शीर्षक"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr ""
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr ""
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "प्रणाली"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr ""
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr ""
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr ""
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr ""
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "इस समस्या का उत्तर देने के लिए एक छात्र कितनी बार कोशिश कर सकता है, इसे परिभाषित करता है। यदि मान सेट नहीं है, तो अनंत प्रयासों की अनुमति है।"
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr ""
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr ""
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr ""
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr ""
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr ""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr ""
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "समस्या वजन"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr ""
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr ""
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr ""
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr ""
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr ""
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr ""
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr ""
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr ""
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr ""
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr ""
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr ""
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -279,89 +338,93 @@ msgstr ""
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -370,55 +433,55 @@ msgid ""
" "
msgstr ""
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "इटेम्स "
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "जारी रखें"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "सेव करें"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "रद्द करें"
@@ -665,8 +728,8 @@ msgstr ""
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr ""
@@ -674,16 +737,16 @@ msgstr ""
msgid "Please check over your submission."
msgstr ""
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
msgstr[1] ""
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "सेव हो रहा है"
diff --git a/drag_and_drop_v2/translations/it/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/it/LC_MESSAGES/text.mo
index f559ec5cf..05bd56ef4 100644
Binary files a/drag_and_drop_v2/translations/it/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/it/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/it/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/it/LC_MESSAGES/text.po
index 8e7c4fe73..55e8858fd 100644
--- a/drag_and_drop_v2/translations/it/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/it/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# 7d6b04fff6aa1b6964c4cb709cdbd24b_0b8e9dc <0f5d8258cb2bd641cccbffd85d9d9e7c_938679>, 2021
# Fare Fare , 2017
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: 7d6b04fff6aa1b6964c4cb709cdbd24b_0b8e9dc <0f5d8258cb2bd641cccbffd85d9d9e7c_938679>, 2021\n"
"Language-Team: Italian (Italy) (http://www.transifex.com/open-edx/xblocks/language/it_IT/)\n"
@@ -105,169 +105,228 @@ msgstr ""
msgid "Good work! You have completed this drag and drop problem."
msgstr ""
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Titolo"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr ""
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Trascina e Rilascia"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Modalità"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr ""
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "Standard"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "Valutazione"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "Tentativi massimi"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "Definisce il numero di volte in cui uno studente può provare a rispondere a questo problema. Se il valore non è impostato, vengono consentiti infiniti tentativi."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Mostra titolo"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "Mostra il titolo al discente?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "Testo del problema"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "Descrizione del problema o istruzioni mostrate al discente."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr ""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr ""
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "Peso del problema"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "Definisce il numero di punto che il problema vale."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "Colore di sfondo dell'oggetto"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr ""
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "Coloro del testo dell'oggetto"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr ""
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "Dato del problema"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr ""
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "Numero di tentativi che il discente ha utilizzato"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr ""
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr ""
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "Ci sono ancora tentativi rimanenti"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "Numero massimo di tentativi raggiunto"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -279,89 +338,93 @@ msgstr "Caricamento del problema di drag and drop."
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "Feedback introduttivo"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "Feedback finale"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "Zone"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "URL di sfondo"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Cambia sfondo"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Descrizione sfondo"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -370,55 +433,55 @@ msgid ""
" "
msgstr ""
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "Etichette della zona"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "Visualizza i nomi delle etichette sull'immagine"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "Bordi della zona"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "Definizioni della zona"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "Aggiungi una zona"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "Oggetti"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "Aggiungi un oggetto"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "Continua"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Salva"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "Annulla"
@@ -673,8 +736,8 @@ msgstr ""
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr ""
@@ -682,17 +745,17 @@ msgstr ""
msgid "Please check over your submission."
msgstr ""
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "Salvataggio in corso"
diff --git a/drag_and_drop_v2/translations/ja/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/ja/LC_MESSAGES/text.mo
index 63f6859b2..ad94f318c 100644
Binary files a/drag_and_drop_v2/translations/ja/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/ja/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/ja/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/ja/LC_MESSAGES/text.po
index e62122b2d..f3d30610f 100644
--- a/drag_and_drop_v2/translations/ja/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/ja/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Machida Miki , 2018
# OpenCraft OpenCraft , 2021
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: 藤田 忠光 , 2018\n"
"Language-Team: Japanese (Japan) (http://www.transifex.com/open-edx/xblocks/language/ja_JP/)\n"
@@ -105,169 +105,228 @@ msgstr "上の画像にアイテムをドラッグしてください。"
msgid "Good work! You have completed this drag and drop problem."
msgstr "よくできました!これでドラッグアンドドロップの問題が解決しました。"
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "件名"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "ドラッグアンドドロップの問題のタイトル。タイトルは受講者に表示されます。"
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "ドラッグアンドドロップ"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "モード"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "標準モード:受講者がターゲットゾーンに問題のアイテムをドロップするたびに、即座にフィードバックを返します。テストモード:受講者がターゲットゾーンにある問題のすべてのアイテムをドロップした後でフィードバックを返します。"
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "標準"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "テスト"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "最大試行回数"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "受講者がこの問題に解答できる回数を指定してください。値を指定しない場合は何回でも解答できることになります。"
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "タイトルの表示"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "受講者にタイトルを表示しますか?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "問題テキスト"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "受講者に表示する問題または指示の説明。"
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "「問題」の見出しを表示"
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "問題テキストの上に「問題」という見出しを表示しますか?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "問題の重み付け"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "各問題の配点を定義します。"
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "アイテムの背景色"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "問題のドラッグ可能なアイテムの背景色 (例:'blue'または'#0000ff')。"
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "アイテムテキストの色"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "ドラッグ可能なアイテムに使用するテキストの色 (例:'white'または'#ffffff')。"
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "問題データ"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "受講者がターゲット画像にドロップしたアイテムの現在位置に関する情報。"
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "受講者が試行した回数"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "受講者が問題を最低一回完了したかどうかを示します。"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "不明なDnDv2モード {mode} - 講座の設定が正しくありません。"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "show_answerハンドラーはテストモードだけで呼び出します。"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "試行回数が残っています。"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "do_attemptハンドラーはテストモードだけで呼び出します。"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "最大試行回数に到達しました。"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -279,89 +338,93 @@ msgstr "ドラッグアンドドロップ問題を読み込んでいます。"
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "導入フィードバック"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "最終フィードバック"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "ゾーン"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "背景URL"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "背景を変更"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "例:'http://example.com/background.png' または '/static/background.png' となります。"
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "背景の説明"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -370,55 +433,55 @@ msgid ""
" "
msgstr "\n 画像が見えないユーザーのために画像の説明を入力してください。\n 説明には、誰もが画像を見なくても問題を解決できるように\n 十分な情報が提供されている必要があります。\n "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "ゾーンラベル"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "画像にラベル名を表示"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "ゾーン境界"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "画像にゾーンの境界線を表示する"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "ゾーン定義"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "ゾーンを追加する"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "アイテム"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "アイテムを追加する"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "続ける"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "保存"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "キャンセル"
@@ -657,8 +720,8 @@ msgstr "エラーが発生しました。ドラッグアンドドロップの問
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "フォームでエラーが発生しました。"
@@ -666,15 +729,15 @@ msgstr "フォームでエラーが発生しました。"
msgid "Please check over your submission."
msgstr "提出内容を確認してください。"
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "保存中"
diff --git a/drag_and_drop_v2/translations/ko/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/ko/LC_MESSAGES/text.mo
index c4a0dc20d..fc06a7041 100644
Binary files a/drag_and_drop_v2/translations/ko/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/ko/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/ko/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/ko/LC_MESSAGES/text.po
index 3f267daea..2e3496830 100644
--- a/drag_and_drop_v2/translations/ko/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/ko/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Jinsun Kim , 2020
# OpenCraft OpenCraft , 2021
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: Wonjae Choi , 2021\n"
"Language-Team: Korean (Korea) (http://www.transifex.com/open-edx/xblocks/language/ko_KR/)\n"
@@ -106,169 +106,228 @@ msgstr "사진 위로 항목을 끌어다 놓으세요."
msgid "Good work! You have completed this drag and drop problem."
msgstr "잘했습니다! 당신은 이 끌어놓기 문제를 해결하셨습니다."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "제목"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "끌어놓기 문제의 제목. 제목은 학습자에게 공개됩니다."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "끌어놓기"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "모드"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "표준 모드: 학습자가 목표 영역에 각 항목을 놓을 때마다 즉각적으로 피드백을 제공합니다. 평가 모드: 학습자가 모든 이용가능한 항목을 목표 영역에 놓았을 때만 피드백을 제공합니다."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "표준"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "평가"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "최대 시도횟수"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "학생이 이 문제에 대해 답할 수 있는 횟수를 지정합니다. 만약 값이 지정되지 않았다면, 무한정으로 시도할 수 있습니다."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "제목 보이기"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "학습자에게 제목을 표시합니까?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "문제 텍스트"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "학습자에게 보여지는 문제 또는 지시사항의 내용"
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "\"문제\"의 제목 보이기"
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "문제 텍스트 위에 \"문제\"의 제목을 표시합니까?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "문제 중요도"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "문제의 중요도를 숫자로 지정합니다."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "항목 배경 색상"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "문제의 끌기 가능한 항목의 배경 색상 (예시: '파랑' 또는 '#0000ff')."
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "항목 텍스트 색상"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "끌기 가능한 항목의 텍스트 색상 (예시: '하양' 또는 '#ffffff')."
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr "영역 당 최대 항목 수"
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr "이 설정은 하나의 영역에 놓일 수 있는 항목의 최대 개수를 설정 합니다."
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "문제 데이터"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "학습자가 목표 이미지에 놓은 항목의 현재 위치에 대한 정보."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "학습자가 시도한 횟수"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "학습자가 문제를 한 번 이상 완료했는지 표시합니다."
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr "대체됩니다. 학생이 달성한 최대 점수를 가중치로 유지합니다."
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr "학생이 달성한 최대 점수를 0과 1 사이의 원래 값으로 유지합니다."
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "알 수 없는 DnDv2 모드 {mode} - 강의가 잘못 구성되어있습니다."
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "show_answer 핸들러는 평가 모드에서만 사용할 수 있습니다."
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "남은 시도 횟수가 있습니다."
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "do_attempt 핸들러는 평가 모드에서만 사용할 수 있습니다."
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "최대 시도 횟수에 도달함"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr "제출 마감일이 지났습니다."
@@ -280,89 +339,93 @@ msgstr "끌어놓기 문제를 불러오는 중."
msgid "Basic Settings"
msgstr "기본 설정"
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "초기 피드백"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "최종 피드백"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "영역"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr "배경 이미지"
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr "사용자 정의 이미지를 제공하기"
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr "이미지를 자동으로 생성하기"
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "배경 URL"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "배경 변경"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "예를 들어, 'http://example.com/background.png' 또는 '/static/background.png'."
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr "영역 레이아웃"
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr "열의 개수"
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr "행의 개수"
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr "행과 열의 개수"
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr "영역 크기"
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr "영역 너비"
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr "영역 높이"
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr "픽셀 단위의 단일 영역 크기"
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr "이미지와 영역 생성하기"
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "배경 설명"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -371,55 +434,55 @@ msgid ""
" "
msgstr "\n 이미지를 볼 수 없는 사용제를 위해 이미지의 설명을 제공하세요.\n 누구나 이미지를 보지 않고도 문제를 풀 수 있도록\n 충분한 정보를 설명해주어야 합니다.\n "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "영역 레이블"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "이미지에 레이블 이름을 표시하기"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "영역의 경계"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "이미지에 영역의 경계를 표시하기"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "영역 정의"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "영역 추가하기"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "항목"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr "항목 정의"
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "항목 추가하기"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "계속"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "저장"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "취소"
@@ -658,8 +721,8 @@ msgstr "오류가 생겼습니다. 끌어놓기 문제를 불러올 수 없습
msgid "You cannot add any more items to this zone."
msgstr "이 영역에는 더이상 항목을 추가할 수 없습니다."
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "형식에 오류가 있습니다."
@@ -667,15 +730,15 @@ msgstr "형식에 오류가 있습니다."
msgid "Please check over your submission."
msgstr "제출물을 확인하세요."
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] "{num}번 영역"
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr "입력한 값을 확인하세요."
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "저장 중"
diff --git a/drag_and_drop_v2/translations/nl/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/nl/LC_MESSAGES/text.po
index a94889db8..9b561d9b8 100644
--- a/drag_and_drop_v2/translations/nl/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/nl/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# 7d6b04fff6aa1b6964c4cb709cdbd24b_0b8e9dc <0f5d8258cb2bd641cccbffd85d9d9e7c_938679>, 2021
# 7d6b04fff6aa1b6964c4cb709cdbd24b_0b8e9dc <0f5d8258cb2bd641cccbffd85d9d9e7c_938679>, 2021
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: 7d6b04fff6aa1b6964c4cb709cdbd24b_0b8e9dc <0f5d8258cb2bd641cccbffd85d9d9e7c_938679>, 2021\n"
"Language-Team: Dutch (http://www.transifex.com/open-edx/xblocks/language/nl/)\n"
@@ -104,169 +104,228 @@ msgstr ""
msgid "Good work! You have completed this drag and drop problem."
msgstr ""
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr ""
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr ""
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr ""
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr ""
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr ""
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr ""
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr ""
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr ""
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr ""
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr ""
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr ""
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr ""
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr ""
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr ""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr ""
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr ""
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr ""
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr ""
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr ""
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr ""
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr ""
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr ""
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr ""
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr ""
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr ""
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr ""
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr ""
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -278,89 +337,93 @@ msgstr ""
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -369,55 +432,55 @@ msgid ""
" "
msgstr ""
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr ""
@@ -664,8 +727,8 @@ msgstr ""
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr ""
@@ -673,16 +736,16 @@ msgstr ""
msgid "Please check over your submission."
msgstr ""
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
msgstr[1] ""
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr ""
diff --git a/drag_and_drop_v2/translations/pl/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/pl/LC_MESSAGES/text.mo
index 6b2614f6f..9621431c8 100644
Binary files a/drag_and_drop_v2/translations/pl/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/pl/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/pl/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/pl/LC_MESSAGES/text.po
index d1f052d9d..da10e9dfc 100644
--- a/drag_and_drop_v2/translations/pl/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/pl/LC_MESSAGES/text.po
@@ -1,14 +1,14 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Maciej Kolankowski , 2018
msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: Maciej Kolankowski , 2018\n"
"Language-Team: Polish (Poland) (http://www.transifex.com/open-edx/xblocks/language/pl_PL/)\n"
@@ -103,169 +103,228 @@ msgstr "Dopasuj elementy do odpowiednich stref obrazka."
msgid "Good work! You have completed this drag and drop problem."
msgstr "Dobra robota! Ćwiczenie ukończone."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Tytuł"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "Tytuł tego ćwiczenia, widoczny dla studentów."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Przeciągnij i upuść"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Tryb"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "Tryb standardowy: odpowiedź pojawia się za każdym razem kiedy student przyporządkowuje element do strefy. Tryb oceny: odpowiedź pojawia się dopiero po przyporządkowaniu wszystkich elementów do stref."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "Standardowy"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "Oceny"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "Maksymalna liczba prób"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "Pozwala określić liczbę prób jaką student może podjąć w celu wykonania ćwiczenia. W przypadku niewpisania wartości, dopuszcza się nielimitowaną liczbę prób."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Wyświetlanie tytułu"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "Czy wyświetlać studentom tytuł ćwiczenia?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "Opis ćwiczenia"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "Opis ćwiczenia i/lub instrukcje dla studentów."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "Wyświetlanie nagłówka \"Ćwiczenie\""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "Czy wyświetlić nagłówek \"Ćwiczenie\" nad treścią ćwiczenia?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "Waga ćwiczenia"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "Określa liczbę punktów za wykonanie ćwiczenia."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "Kolor tła elementu"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "Kolor tła dopasowywanych elementów (np. '#0000ff')"
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "Kolor tekstu elementu"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "Kolor tekstu dopasowywanych elementów (np. '#ffffff')."
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "Dane ćwiczenia"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "Informacja na temat obecnych pozycji elementów upuszczonych przez studenta na obrazek docelowy."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "Liczba podejść"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "Wskazuje, czy student wykonał ćwiczenie przynajmniej jeden raz."
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "Nieznany tryb DnDv2 {mode} - kurs skonfigurowany nieprawidłowo"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "Z show_answer powinno się korzystać tylko w trybie oceny"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "Dostępne są dodatkowe próby"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "Z do_attempt powinno się korzystać tylko w trybie oceny"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "Wykorzystano maksymalną liczbę prób."
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -277,89 +336,93 @@ msgstr "Ładowanie ćwiczenia \"przeciągnij i upuść\"."
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "Komentarz początkowy"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "Komentarz końcowy"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "Strefy"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "Adres URL tła"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Zmień tło"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "Na przykład 'http://example.com/background.png' lub '/static/background.png'."
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Opis tła"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -368,55 +431,55 @@ msgid ""
" "
msgstr "\nProszę wprowadzić opis obrazka przeznaczony dla osób z zaburzeniami widzenia. Opis powinien być na tyle precyzyjny, aby umożliwić rozwiązanie ćwiczenia nawet bez możliwości zobaczenia obrazka. "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "Etykiety strefy"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "Wyświetl na obrazku nazwy etykiet"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "Granice strefy"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "Wyświetl na obrazku granice strefy"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "Definicje strefy"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "Dodaj strefę"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "Elementy"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "Dodaj element"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "Kontynuuj"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Zapisz"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "Anuluj"
@@ -679,8 +742,8 @@ msgstr "Wystąpił błąd. Nie udało się załadować ćwiczenia \"przeciągnij
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "Wystąpił błąd z przesyłaniem odpowiedzi."
@@ -688,7 +751,7 @@ msgstr "Wystąpił błąd z przesyłaniem odpowiedzi."
msgid "Please check over your submission."
msgstr "Proszę jeszcze raz sprawdzić swoje ćwiczenie."
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
@@ -696,10 +759,10 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr ""
diff --git a/drag_and_drop_v2/translations/pt_BR/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/pt_BR/LC_MESSAGES/text.mo
index 7d79506c6..c78aaec4b 100644
Binary files a/drag_and_drop_v2/translations/pt_BR/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/pt_BR/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/pt_BR/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/pt_BR/LC_MESSAGES/text.po
index 26e2fb550..562ac8c2c 100644
--- a/drag_and_drop_v2/translations/pt_BR/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/pt_BR/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Anderson Franca , 2017
# danielcn , 2016
@@ -22,7 +22,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: Salatiel Ewerton , 2016\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/open-edx/xblocks/language/pt_BR/)\n"
@@ -117,169 +117,228 @@ msgstr "Arraste os itens para a imagem acima."
msgid "Good work! You have completed this drag and drop problem."
msgstr "Bom trabalho! Você completou este problema."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Título"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "O título do problema de arraste e solte. O título é exibido aos alunos."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Arraste e Solte"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Modo"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "Modo padrão: o problema fornece comentário imediatamente cada vez que um aluno solta um item numa zona-alvo. Modo avaliação: o problema fornece comentário somente depois que um aluno solta todos os itens nas áreas-alvo."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "Padrão"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "Avaliação"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "Máximo de tentativas"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "Define o número de tentativas que os estudantes podem fazer para resolver este problema. Se o valor não for definido, infinitas tentativas serão permitidas."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Exibir título"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "Exibir título ao aluno?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "Descrição do problema"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "A descrição do problema ou instruções exibidas ao aluno."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "Exibir o cabeçalho do \"Problema\""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "Exibir o cabeçalho de \"Problema\" acima da descrição?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "Valor do problema"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "Define o número de pontos válidos para este problema."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "Cor do plano de fundo"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "A cor do plano de fundo de itens que podem ser arrastados no problema (por exemplo: 'azul' ou '#0000ff')."
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "Cor do texto"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "Cor do texto para itens que podem ser arrastados (por exemplo: 'branco' ou '#ffffff')."
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr "Itens máximos por zona"
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr "Esta configuração limita o número de itens que podem ser largados de uma única zona."
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "Dados do problema"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "Informações sobre as posições atuais de itens que um aluno soltou na imagem-alvo."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "Numero de tentativas usadas pelo aluno"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "Indica se um aluno completou o problema pelo menos uma vez"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr "DEPRECIADO.Mantém a pontuação máxima alcançada pelo aluno como um valor pesado."
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr "Mantém a pontuação máxima alcançada pelo estudante como um valor cru entre 0 e 1."
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "Modo {mode} DnDv2 desconhecido - o curso não está configurado corretamente"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "A ferramenta show_answer deve somente ser executada no modo de avaliação"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "Há tentativas restantes"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "A ferramenta do_attempt deve ser executada somente no modo de avaliação"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "Número máximo de tentativas alcançado"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr "O prazo de envio expirou."
@@ -291,89 +350,93 @@ msgstr "Carregando o problema"
msgid "Basic Settings"
msgstr "Configurações básicas"
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "Feedback introdutório"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "Comentário final"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "Zonas"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr "Imagem de fundo"
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr "Fornecer imagem personalizada"
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr "Gerar imagem automaticamente"
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "URL do plano de fundo"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Alterar plano de fundo"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "Por exemplo, 'http://example.com/background.png' ou '/static/background.png'."
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr "Estilo da zona"
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr "Número de colunas"
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr "Número de linhas"
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr "Número de colunas e linhas."
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr "Tamanho da zona"
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr "Largura da zona"
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr "Altura da zona"
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr "Tamanho de uma única zona em pixels."
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr "Gerar imagem e áreas"
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Descrição do plano de fundo"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -382,55 +445,55 @@ msgid ""
" "
msgstr "\nForneça uma descrição da imagem para usuários não-visuais.\nA descrição deve ter informação suficiente para permitir que qualquer pessoa\nresolva o problema mesmo sem visualizar a imagem."
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "Etiquetas da zona"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "Exibir nomes da etiqueta na imagem"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "Bordas da zona"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "Exibir as bordas da zona na imagem"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "Definições da zona"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "Adicionar uma zona"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "Itens"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr "Definições do item"
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "Adicionar um item"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "Continuar"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Salvar"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "Cancelar"
@@ -685,8 +748,8 @@ msgstr "Ocorreu um erro. Não foi possível carregar o problema de arraste e sol
msgid "You cannot add any more items to this zone."
msgstr "Você não pode adicionar mais itens nesta área."
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "Ocorreu um erro com seu formulário."
@@ -694,17 +757,17 @@ msgstr "Ocorreu um erro com seu formulário."
msgid "Please check over your submission."
msgstr "Por favor, verifique seu envio."
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] "Zona {num}"
msgstr[1] "Zona {num}"
msgstr[2] "Zona {num}"
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr "Por favor verifique os valores que você inseriu."
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "Salvando"
diff --git a/drag_and_drop_v2/translations/pt_PT/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/pt_PT/LC_MESSAGES/text.mo
index bd86a2e02..c26512e59 100644
Binary files a/drag_and_drop_v2/translations/pt_PT/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/pt_PT/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/pt_PT/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/pt_PT/LC_MESSAGES/text.po
index a20127574..898dff62d 100644
--- a/drag_and_drop_v2/translations/pt_PT/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/pt_PT/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Cátia Lopes , 2019
# Guilherme Campos , 2020
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: Manuela Silva , 2018\n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/open-edx/xblocks/language/pt_PT/)\n"
@@ -111,169 +111,228 @@ msgstr "Arraste os itens para a imagem acima."
msgid "Good work! You have completed this drag and drop problem."
msgstr "Bom trabalho! Concluiu este problema de arrastar e soltar."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Título"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "O título do problema de arrastar e soltar. O título é visível para os estudantes."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Arraste e Solte"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Modo"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "Modo padrão: o problema dá feedback imediato cada vez que um aluno solta um item numa zona de destino. Modo de avaliação: o problema dá feedback apenas depois do estudante arrastar todos os itens disponíveis para as zonas de destino."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "Padrão"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "Avaliação"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "Máximo de tentativas"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "Define o número de vezes que um estudante pode tentar responder a este problema. Se o valor não estiver definido, é permitido um número infinito de tentativas."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Mostrar título"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "Mostrar o título ao estudante?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "Texto do problema"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "A descrição do problema ou instruções que o estudante vê."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "Mostrar o título \"problema\""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "Mostrar o título \"problema\" acima do texto do problema?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "Importância do problema"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "Define o número de pontos que o problema vale."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "Cor do fundo do item"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "A cor de fundo dos itens arrastáveis no problema (exemplo: 'blue' ou '#0000ff')."
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "Cor do texto do item"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "Cor do texto dos itens arrastáveis (exemplo: 'white' ou '#ffffff')."
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr "Máximo de itens por zona"
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr "Esta configuração limita o número de itens que podem ser colocados numa única zona."
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "Dados do problema"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "Informações sobre as posições atuais dos itens que um estudante descartou na imagem de destino."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "Número de tentativas utilizadas pelo estudante"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "Indica se um estudante concluiu o problema pelo menos uma vez"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr "DESCONTINUADO. Mantém a pontuação máxima alcançada pelo aluno como valor ponderado."
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr "Mantém a pontuação máxima alcançada pelo aluno como um valor bruto entre 0 e 1."
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr "Pontuação máxima disponível do problema com um valor bruto entre 0 e 1."
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "Modo DnDv2 desconhecido {mode} - o curso está mal configurado"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "O manipulador show_answer só deve ser utilizado no modo de avaliação"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "Ainda há tentativas disponíveis"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "O manipulador do_attempt só deve ser utilizado no modo de avaliação"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "Número máximo de tentativas atingido"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr "O prazo para submissão já passou."
@@ -285,89 +344,93 @@ msgstr "A carregar o problema de arrastar e largar."
msgid "Basic Settings"
msgstr "Configurações básicas"
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "Comentário inicial"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "Feedback final"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "Zonas"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr "Imagem de fundo"
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr "Forneça uma imagem personalizada"
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr "Gerar imagem automaticamente"
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "URL do plano de fundo"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Mudar o plano de fundo"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "Por exemplo, 'http://example.com/background.png' ou '/static/background.png'."
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr "Layout da zona"
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr "Número de colunas"
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr "Número de linhas"
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr "Número de colunas e linhas."
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr "Dimensões da Zona"
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr "Largura da Zona"
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr "Altura da Zona"
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr "Tamanho em pixéis de uma zona única ."
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr "Gerar imagem e zonas"
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Descrição do plano de fundo"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -376,55 +439,55 @@ msgid ""
" "
msgstr "\n Por favor, disponibilize uma descrição da imagem para utilizadores com dificuldades visuais.\n A descrição deve dar informações suficientes para permitir que qualquer pessoa\n resolva o problema mesmo sem ver a imagem.\n "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "Etiquetas de zona"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "Mostrar nomes de etiquetas na imagem"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "Limites da zona"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "Mostrar limites da zona na imagem"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "Definições de zona"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "Adicionar uma zona"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "Itens"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr "Definições do item"
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "Adicionar um item"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "Continuar"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Guardar"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "Cancelar"
@@ -679,8 +742,8 @@ msgstr "Ocorreu um erro. Não é possível carregar este problema."
msgid "You cannot add any more items to this zone."
msgstr "Não pode adicionar mais itens nesta zona."
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "Houve um erro com o seu formulário."
@@ -688,17 +751,17 @@ msgstr "Houve um erro com o seu formulário."
msgid "Please check over your submission."
msgstr "Por favor, verifique o envio."
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] "Zona {num}"
msgstr[1] "Zona {num}"
msgstr[2] "Zona {num}"
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr "Por favor, verifique os valores que introduziu."
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "A Guardar"
diff --git a/drag_and_drop_v2/translations/rtl/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/rtl/LC_MESSAGES/text.mo
index f44651154..a19cba43f 100644
Binary files a/drag_and_drop_v2/translations/rtl/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/rtl/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/rtl/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/rtl/LC_MESSAGES/text.po
index 33d3aa03d..7131d0e5e 100644
--- a/drag_and_drop_v2/translations/rtl/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/rtl/LC_MESSAGES/text.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 21:51+0200\n"
+"POT-Creation-Date: 2022-10-13 22:02+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -180,6 +180,68 @@ msgstr "Sɥøʍ \"Ᵽɹøblǝɯ\" ɥǝɐdᴉnƃ"
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "Đᴉsdlɐʎ ʇɥǝ ɥǝɐdᴉnƃ \"Ᵽɹøblǝɯ\" ɐbøʌǝ ʇɥǝ dɹøblǝɯ ʇǝxʇ?"
+#: drag_and_drop_v2.py
+msgid "Show answer"
+msgstr "Sɥøʍ ɐnsʍǝɹ"
+
+#: drag_and_drop_v2.py
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+"Đǝɟᴉnǝs ʍɥǝn ʇø sɥøʍ ʇɥǝ ɐnsʍǝɹ ʇø ʇɥǝ dɹøblǝɯ. Ⱥ dǝɟɐnlʇ ʌɐlnǝ ɔɐn bǝ sǝʇ "
+"ᴉn Ⱥdʌɐnɔǝd Sǝʇʇᴉnƃs. Ŧø ɹǝʌǝɹʇ sǝʇʇᴉnƃ ɐ ɔnsʇøɯ ʌɐlnǝ, ɔɥøøsǝ ʇɥǝ 'Đǝɟɐnlʇ'"
+" ødʇᴉøn."
+
+#: drag_and_drop_v2.py
+msgid "Default"
+msgstr "Đǝɟɐnlʇ"
+
+#: drag_and_drop_v2.py
+msgid "Always"
+msgstr "Ⱥlʍɐʎs"
+
+#: drag_and_drop_v2.py
+msgid "Answered"
+msgstr "Ⱥnsʍǝɹǝd"
+
+#: drag_and_drop_v2.py
+msgid "Attempted or Past Due"
+msgstr "Ⱥʇʇǝɯdʇǝd øɹ Ᵽɐsʇ Đnǝ"
+
+#: drag_and_drop_v2.py
+msgid "Closed"
+msgstr "Ȼløsǝd"
+
+#: drag_and_drop_v2.py
+msgid "Finished"
+msgstr "Fᴉnᴉsɥǝd"
+
+#: drag_and_drop_v2.py
+msgid "Correct or Past Due"
+msgstr "Ȼøɹɹǝɔʇ øɹ Ᵽɐsʇ Đnǝ"
+
+#: drag_and_drop_v2.py
+msgid "Past Due"
+msgstr "Ᵽɐsʇ Đnǝ"
+
+#: drag_and_drop_v2.py
+msgid "Never"
+msgstr "Nǝʌǝɹ"
+
+#: drag_and_drop_v2.py
+msgid "After All Attempts"
+msgstr "Ⱥɟʇǝɹ Ⱥll Ⱥʇʇǝɯdʇs"
+
+#: drag_and_drop_v2.py
+msgid "After All Attempts or Correct"
+msgstr "Ⱥɟʇǝɹ Ⱥll Ⱥʇʇǝɯdʇs øɹ Ȼøɹɹǝɔʇ"
+
+#: drag_and_drop_v2.py
+msgid "Attempted"
+msgstr "Ⱥʇʇǝɯdʇǝd"
+
#: drag_and_drop_v2.py
msgid "Problem Weight"
msgstr "Ᵽɹøblǝɯ Wǝᴉƃɥʇ"
@@ -278,8 +340,8 @@ msgid "show_answer handler should only be called for assessment mode"
msgstr "sɥøʍ_ɐnsʍǝɹ ɥɐndlǝɹ sɥønld ønlʎ bǝ ɔɐllǝd ɟøɹ ɐssǝssɯǝnʇ ɯødǝ"
#: drag_and_drop_v2.py
-msgid "There are attempts remaining"
-msgstr "Ŧɥǝɹǝ ɐɹǝ ɐʇʇǝɯdʇs ɹǝɯɐᴉnᴉnƃ"
+msgid "The answer is unavailable"
+msgstr "Ŧɥǝ ɐnsʍǝɹ ᴉs nnɐʌɐᴉlɐblǝ"
#: drag_and_drop_v2.py
msgid "do_attempt handler should only be called for assessment mode"
@@ -301,6 +363,10 @@ msgstr "Łøɐdᴉnƃ dɹɐƃ ɐnd dɹød dɹøblǝɯ."
msgid "Basic Settings"
msgstr "Ƀɐsᴉɔ Sǝʇʇᴉnƃs"
+#: templates/html/drag_and_drop_edit.html
+msgid "(inherited from Advanced Settings)"
+msgstr "(ᴉnɥǝɹᴉʇǝd ɟɹøɯ Ⱥdʌɐnɔǝd Sǝʇʇᴉnƃs)"
+
#: templates/html/drag_and_drop_edit.html
msgid "Introductory feedback"
msgstr "Ɨnʇɹødnɔʇøɹʎ ɟǝǝdbɐɔʞ"
diff --git a/drag_and_drop_v2/translations/ru/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/ru/LC_MESSAGES/text.mo
index 937f140a6..a976d405c 100644
Binary files a/drag_and_drop_v2/translations/ru/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/ru/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/ru/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/ru/LC_MESSAGES/text.po
index 0ce21f87a..f4aa9f9d7 100644
--- a/drag_and_drop_v2/translations/ru/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/ru/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Liubov Fomicheva , 2017-2018
# Weyedide , 2016
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: Александр Зуев , 2016\n"
"Language-Team: Russian (http://www.transifex.com/open-edx/xblocks/language/ru/)\n"
@@ -106,169 +106,228 @@ msgstr "Перетащите элементы на изображение, ра
msgid "Good work! You have completed this drag and drop problem."
msgstr "Хорошо! Вы справились с этим заданием."
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Заголовок"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "Название задачи на перетаскивание элементов, отображаемое для слушателей."
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Задача на перетаскивание"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Режим"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "Стандартный режим: при каждом перетаскивании элемента в целевую зону слушатель получает обратную связь. Оцениваемый режим: слушатель получает обратную связь только после того, как перетащит в целевые зоны все доступные элементы."
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "Стандартный"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "Оцениваемый"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "Максимальное количество попыток"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "Определяет, сколько раз слушатель может давать ответ на задание. Если значение не установлено, предоставляется неограниченное количество попыток."
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Показывать заголовок"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "Отображать название для слушателей?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "Текст задачи"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "Условия задачи или указания, показываемые слушателю."
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "Отображать заголовок «Задача»"
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "Отображать заголовок «Задача» над условием?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "Вес задания"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "Определяет количество баллов за задачу."
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "Фон элемента"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "Фон перетаскиваемых элементов в задаче (например, 'blue' или '#0000ff')."
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "Цвет текста элементов"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "Цвет текста в перетаскиваемых элементах (например, 'blue' или '#0000ff')."
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "Данные о задаче"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "Информация о текущем местонахождении элементов, которые слушатель расположил на заданных участках изображения."
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "Количество попыток, использованных слушателем"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "Показывает, удалось ли слушателю хотя бы один раз выполнить задание"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "Неизвестный режим {mode} задачи DnDv2 — курс неверно настроен"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "Обработчик show_answer должен вызываться только в режиме оценивания"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "Остались неиспользованные попытки"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "Обработчик do_attempt должен вызываться только в режиме оценивания"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "Превышено максимальное количество попыток"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -280,89 +339,93 @@ msgstr "Идёт загрузка задания на перетаскивани
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "Исходное сообщение для обратной связи"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "Итоговое сообщение для обратной связи"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "Зоны"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "URL-адрес фонового изображения"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Выбрать фон"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "Например, http://example.com/background.png или /static/background.png"
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Описание фона"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -371,55 +434,55 @@ msgid ""
" "
msgstr "\nПожалуйста, опишите изображение для невидящих пользователей.\nОписание должно содержать достаточно информации, чтобы любой\nмог решить задачу, даже не видя изображение."
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "Подписи зон"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "Показывать подписи на изображении"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "Границы зон"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "Отображать границы зон на изображении"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "Зоны"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "Добавить зону"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "Элементы"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "Добавить элемент"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "Продолжить"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Сохранить"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "Отмена"
@@ -682,8 +745,8 @@ msgstr "Произошла ошибка. Не удалось загрузить
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "Ошибка при обработке вашей формы."
@@ -691,7 +754,7 @@ msgstr "Ошибка при обработке вашей формы."
msgid "Please check over your submission."
msgstr "Пожалуйста, проверьте свой ответ."
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
@@ -699,10 +762,10 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "Сохранение"
diff --git a/drag_and_drop_v2/translations/tr/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/tr/LC_MESSAGES/text.po
index ec97f17a6..c1a5033b7 100644
--- a/drag_and_drop_v2/translations/tr/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/tr/LC_MESSAGES/text.po
@@ -1,8 +1,10 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
+# 7d6b04fff6aa1b6964c4cb709cdbd24b_0b8e9dc <0f5d8258cb2bd641cccbffd85d9d9e7c_938679>, 2021
+# Erdoğan Şahin, 2016
# Erdoğan Şahin, 2016
# 7d6b04fff6aa1b6964c4cb709cdbd24b_0b8e9dc <0f5d8258cb2bd641cccbffd85d9d9e7c_938679>, 2021
# OpenCraft OpenCraft , 2021
@@ -10,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-07-21 16:53+0000\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: OpenCraft OpenCraft , 2021\n"
"Language-Team: Turkish (http://www.transifex.com/open-edx/xblocks/language/tr/)\n"
@@ -105,169 +107,228 @@ msgstr ""
msgid "Good work! You have completed this drag and drop problem."
msgstr ""
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "Başlık"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr ""
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "Sürükle ve Bırak"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "Mod"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr ""
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr ""
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr ""
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr ""
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr ""
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "Başlığı göster"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr ""
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr ""
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr ""
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr ""
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr ""
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr ""
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr ""
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr ""
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr ""
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr ""
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr ""
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr ""
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr ""
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr ""
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr ""
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr ""
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr ""
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:811
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr ""
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -279,89 +340,93 @@ msgstr ""
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "Arkaplanı değiştir"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "Arkaplan açıklaması"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -370,239 +435,238 @@ msgid ""
" "
msgstr ""
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "Kaydet"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "İptal"
-#: utils.py:56
+#: utils.py:59
#, python-brace-format
msgid "Your highest score is {score}"
msgstr "En yüksek puanınız {score}"
-#: utils.py:57
+#: utils.py:60
#, python-brace-format
msgid "Final attempt was used, highest score is {score}"
msgstr ""
-#: utils.py:65
+#: utils.py:68
#, python-brace-format
msgid "Correctly placed {correct_count} item"
msgid_plural "Correctly placed {correct_count} items"
msgstr[0] "Doğru yerleştirilmiş {correct_count} öğe"
msgstr[1] "Doğru yerleştirilmiş {correct_count} öğe"
-#: utils.py:76
+#: utils.py:79
#, python-brace-format
msgid "Misplaced {misplaced_count} item"
msgid_plural "Misplaced {misplaced_count} items"
msgstr[0] ""
msgstr[1] ""
-#: utils.py:87
+#: utils.py:90
#, python-brace-format
msgid ""
"Misplaced {misplaced_count} item (misplaced item was returned to the item "
"bank)"
msgid_plural ""
-"Misplaced {misplaced_count} items (misplaced items were returned to the item "
-"bank)"
+"Misplaced {misplaced_count} items (misplaced items were returned to the item"
+" bank)"
msgstr[0] "{misplaced_count} öğe yanlış yerleştirildi. Yanlış yerleştirilen öğeler, öğe bankasına iade edildi."
msgstr[1] "{misplaced_count} öğe yanlış yerleştirildi. Yanlış yerleştirilen öğeler, öğe bankasına iade edildi."
-#: utils.py:98
+#: utils.py:101
#, python-brace-format
msgid "Did not place {missing_count} required item"
msgid_plural "Did not place {missing_count} required items"
msgstr[0] ""
msgstr[1] ""
-#: public/js/drag_and_drop.js:33 public/js/drag_and_drop.js:380
+#: public/js/drag_and_drop.js:48 public/js/drag_and_drop.js:399
msgid "Submitting"
msgstr ""
-#: public/js/drag_and_drop.js:147
+#: public/js/drag_and_drop.js:162
msgid "Unknown Zone"
msgstr ""
-#: public/js/drag_and_drop.js:151
+#: public/js/drag_and_drop.js:166
msgid "Placed in: {zone_title}"
msgstr ""
-#: public/js/drag_and_drop.js:155
+#: public/js/drag_and_drop.js:170
msgid "Correctly placed in: {zone_title}"
msgstr ""
-#: public/js/drag_and_drop.js:167
+#: public/js/drag_and_drop.js:182
msgid ", draggable, grabbed"
msgstr ""
-#: public/js/drag_and_drop.js:167
+#: public/js/drag_and_drop.js:182
msgid ", draggable"
msgstr ""
-#: public/js/drag_and_drop.js:244
+#: public/js/drag_and_drop.js:259
msgid "No items placed here"
msgstr ""
-#: public/js/drag_and_drop.js:250
+#: public/js/drag_and_drop.js:265
msgid "Items placed here: "
msgstr ""
-#: public/js/drag_and_drop.js:282
+#: public/js/drag_and_drop.js:297
msgid ", dropzone"
msgstr ""
-#: public/js/drag_and_drop.js:285
+#: public/js/drag_and_drop.js:300
msgid "droppable"
msgstr ""
-#: public/js/drag_and_drop.js:306 public/js/drag_and_drop.js:310
+#: public/js/drag_and_drop.js:321 public/js/drag_and_drop.js:325
msgid "Feedback"
msgstr "Geri Bildirim"
-#: public/js/drag_and_drop.js:321 public/js/drag_and_drop.js:324
+#: public/js/drag_and_drop.js:336 public/js/drag_and_drop.js:341
msgid "Explanation"
msgstr ""
-#: public/js/drag_and_drop.js:338 public/js/drag_and_drop.js:512
-#: public/js/drag_and_drop.js:555
+#: public/js/drag_and_drop.js:357 public/js/drag_and_drop.js:547
msgid "Close"
msgstr ""
-#: public/js/drag_and_drop.js:341 public/js/drag_and_drop.js:576
+#: public/js/drag_and_drop.js:360 public/js/drag_and_drop.js:595
msgid "Keyboard Help"
msgstr ""
-#: public/js/drag_and_drop.js:344
+#: public/js/drag_and_drop.js:363
msgid "This is a screen reader-friendly problem."
msgstr ""
-#: public/js/drag_and_drop.js:345
+#: public/js/drag_and_drop.js:364
msgid ""
"Drag and Drop problems consist of draggable items and dropzones. Users "
"should select a draggable item with their keyboard and then navigate to an "
"appropriate dropzone to drop it."
msgstr ""
-#: public/js/drag_and_drop.js:346
+#: public/js/drag_and_drop.js:365
msgid ""
"You can complete this problem using only your keyboard by following the "
"guidance below:"
msgstr ""
-#: public/js/drag_and_drop.js:348
+#: public/js/drag_and_drop.js:367
msgid ""
"Use only TAB and SHIFT+TAB to navigate between draggable items and drop "
"zones."
msgstr ""
-#: public/js/drag_and_drop.js:349
+#: public/js/drag_and_drop.js:368
msgid "Press CTRL+M to select a draggable item (effectively picking it up)."
msgstr ""
-#: public/js/drag_and_drop.js:350
+#: public/js/drag_and_drop.js:369
msgid ""
"Navigate using TAB and SHIFT+TAB to the appropriate dropzone and press "
"CTRL+M once more to drop it here."
msgstr ""
-#: public/js/drag_and_drop.js:351
+#: public/js/drag_and_drop.js:370
msgid ""
"Press ESC if you want to cancel the drop operation (for example, to select a"
" different item)."
msgstr ""
-#: public/js/drag_and_drop.js:352
+#: public/js/drag_and_drop.js:371
msgid ""
"TAB back to the list of draggable items and repeat this process until all of"
" the draggable items have been placed on their respective dropzones."
msgstr ""
-#: public/js/drag_and_drop.js:370
+#: public/js/drag_and_drop.js:389
msgid "You have used {used} of {total} attempts."
msgstr ""
-#: public/js/drag_and_drop.js:393
+#: public/js/drag_and_drop.js:412
msgid "Submit"
msgstr ""
-#: public/js/drag_and_drop.js:434
+#: public/js/drag_and_drop.js:453
msgid "Show Answer"
msgstr ""
-#: public/js/drag_and_drop.js:443
+#: public/js/drag_and_drop.js:462
msgid "Actions"
msgstr ""
-#: public/js/drag_and_drop.js:447
+#: public/js/drag_and_drop.js:466
msgid "Go to Beginning"
msgstr ""
-#: public/js/drag_and_drop.js:453
+#: public/js/drag_and_drop.js:472
msgid "Reset"
msgstr ""
-#: public/js/drag_and_drop.js:473 public/js/drag_and_drop.js:1213
+#: public/js/drag_and_drop.js:506 public/js/drag_and_drop.js:1233
msgid "Some of your answers were not correct."
msgstr "Cevaplarınızdan bazıları doğru değildi."
-#: public/js/drag_and_drop.js:474 public/js/drag_and_drop.js:1216
+#: public/js/drag_and_drop.js:507 public/js/drag_and_drop.js:1236
msgid "Hints:"
msgstr "İpuçları:"
-#: public/js/drag_and_drop.js:542
+#: public/js/drag_and_drop.js:577
msgid "Correct"
msgstr ""
-#: public/js/drag_and_drop.js:542
+#: public/js/drag_and_drop.js:577
msgid "Incorrect"
msgstr ""
@@ -610,7 +674,7 @@ msgstr ""
#. total number of points (examples: 0/1, 1/1, 2/3, 5/10). The total number of
#. points will always be at least 1. We pluralize based on the total number of
#. points (example: 0/1 point; 1/2 points).
-#: public/js/drag_and_drop.js:591
+#: public/js/drag_and_drop.js:610
msgid "{earned}/{possible} point (graded)"
msgid_plural "{earned}/{possible} points (graded)"
msgstr[0] ""
@@ -620,7 +684,7 @@ msgstr[1] ""
#. total number of points (examples: 0/1, 1/1, 2/3, 5/10). The total number of
#. points will always be at least 1. We pluralize based on the total number of
#. points (example: 0/1 point; 1/2 points).
-#: public/js/drag_and_drop.js:598
+#: public/js/drag_and_drop.js:617
msgid "{earned}/{possible} point (ungraded)"
msgid_plural "{earned}/{possible} points (ungraded)"
msgstr[0] ""
@@ -628,7 +692,7 @@ msgstr[1] ""
#. Translators: {possible} is the number of points possible (examples: 1, 3,
#. 10).
-#: public/js/drag_and_drop.js:608
+#: public/js/drag_and_drop.js:627
msgid "{possible} point possible (graded)"
msgid_plural "{possible} points possible (graded)"
msgstr[0] ""
@@ -636,55 +700,55 @@ msgstr[1] ""
#. Translators: {possible} is the number of points possible (examples: 1, 3,
#. 10).
-#: public/js/drag_and_drop.js:615
+#: public/js/drag_and_drop.js:634
msgid "{possible} point possible (ungraded)"
msgid_plural "{possible} points possible (ungraded)"
msgstr[0] ""
msgstr[1] ""
-#: public/js/drag_and_drop.js:641
+#: public/js/drag_and_drop.js:660
msgid "Drag and Drop Problem"
msgstr ""
-#: public/js/drag_and_drop.js:643
+#: public/js/drag_and_drop.js:662
msgid "Problem"
msgstr "Sorun"
-#: public/js/drag_and_drop.js:668
+#: public/js/drag_and_drop.js:687
msgid "Item Bank"
msgstr ""
-#: public/js/drag_and_drop.js:713
+#: public/js/drag_and_drop.js:732
msgid "Drop Targets"
msgstr ""
-#: public/js/drag_and_drop.js:878
+#: public/js/drag_and_drop.js:898
msgid "An error occurred. Unable to load drag and drop problem."
msgstr ""
-#: public/js/drag_and_drop.js:1338
+#: public/js/drag_and_drop.js:1359
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:108 public/js/drag_and_drop_edit.js:501
-#: public/js/drag_and_drop_edit.js:731
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr ""
-#: public/js/drag_and_drop_edit.js:109
+#: public/js/drag_and_drop_edit.js:124
msgid "Please check over your submission."
msgstr ""
-#: public/js/drag_and_drop_edit.js:351
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
msgstr[1] ""
-#: public/js/drag_and_drop_edit.js:502
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:724
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "Kaydediliyor"
diff --git a/drag_and_drop_v2/translations/zh_CN/LC_MESSAGES/text.mo b/drag_and_drop_v2/translations/zh_CN/LC_MESSAGES/text.mo
index e3f3c9624..c72b18bc0 100644
Binary files a/drag_and_drop_v2/translations/zh_CN/LC_MESSAGES/text.mo and b/drag_and_drop_v2/translations/zh_CN/LC_MESSAGES/text.mo differ
diff --git a/drag_and_drop_v2/translations/zh_CN/LC_MESSAGES/text.po b/drag_and_drop_v2/translations/zh_CN/LC_MESSAGES/text.po
index 798a83088..e7d4ef58b 100644
--- a/drag_and_drop_v2/translations/zh_CN/LC_MESSAGES/text.po
+++ b/drag_and_drop_v2/translations/zh_CN/LC_MESSAGES/text.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Beck Gee <1113300417@hit.edu.cn>, 2016
# focusheart , 2017,2019
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: XBlocks\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-10-05 20:22+0200\n"
+"POT-Creation-Date: 2022-10-13 21:14+0200\n"
"PO-Revision-Date: 2016-06-09 07:11+0000\n"
"Last-Translator: 百杰 陈 , 2018\n"
"Language-Team: Chinese (China) (http://www.transifex.com/open-edx/xblocks/language/zh_CN/)\n"
@@ -108,169 +108,228 @@ msgstr "把这一对拖到上面的图形里。"
msgid "Good work! You have completed this drag and drop problem."
msgstr "太棒了!你已经完成了这个拖拽问题啦。"
-#: drag_and_drop_v2.py:77
+#: drag_and_drop_v2.py:79
msgid "Title"
msgstr "标题"
-#: drag_and_drop_v2.py:78
+#: drag_and_drop_v2.py:80
msgid ""
"The title of the drag and drop problem. The title is displayed to learners."
msgstr "拖放问题的标题。向学员显示标题。"
-#: drag_and_drop_v2.py:80
+#: drag_and_drop_v2.py:82
msgid "Drag and Drop"
msgstr "拖放"
-#: drag_and_drop_v2.py:85
+#: drag_and_drop_v2.py:87
msgid "Mode"
msgstr "模式"
-#: drag_and_drop_v2.py:87
+#: drag_and_drop_v2.py:89
msgid ""
"Standard mode: the problem provides immediate feedback each time a learner "
"drops an item on a target zone. Assessment mode: the problem provides "
"feedback only after a learner drops all available items on target zones."
msgstr "标准模式:只要学员作答题目,马上提供反馈。评分模式:学员必须完整答题后,才会提供反馈。"
-#: drag_and_drop_v2.py:94
+#: drag_and_drop_v2.py:96
msgid "Standard"
msgstr "标准模式"
-#: drag_and_drop_v2.py:95
+#: drag_and_drop_v2.py:97
msgid "Assessment"
msgstr "评分模式"
-#: drag_and_drop_v2.py:102
+#: drag_and_drop_v2.py:104
msgid "Maximum attempts"
msgstr "总答题机会"
-#: drag_and_drop_v2.py:104
+#: drag_and_drop_v2.py:106
msgid ""
"Defines the number of times a student can try to answer this problem. If the"
" value is not set, infinite attempts are allowed."
msgstr "设置学员可对此题目作答的机会次数,如果不设置此值,那么学员可无数次作答。"
-#: drag_and_drop_v2.py:113
+#: drag_and_drop_v2.py:115
msgid "Show title"
msgstr "显示标题"
-#: drag_and_drop_v2.py:114
+#: drag_and_drop_v2.py:116
msgid "Display the title to the learner?"
msgstr "是否向学员显示标题?"
-#: drag_and_drop_v2.py:121
+#: drag_and_drop_v2.py:123
msgid "Problem text"
msgstr "问题文本"
-#: drag_and_drop_v2.py:122
+#: drag_and_drop_v2.py:124
msgid "The description of the problem or instructions shown to the learner."
msgstr "学员可见的题目描述或作答指引。"
-#: drag_and_drop_v2.py:129
+#: drag_and_drop_v2.py:131
msgid "Show \"Problem\" heading"
msgstr "显示“问题”标题"
-#: drag_and_drop_v2.py:130
+#: drag_and_drop_v2.py:132
msgid "Display the heading \"Problem\" above the problem text?"
msgstr "是否在问题文本上方显示标题“问题”?"
-#: drag_and_drop_v2.py:137
+#: drag_and_drop_v2.py:138
+msgid "Show answer"
+msgstr ""
+
+#: drag_and_drop_v2.py:139
+msgid ""
+"Defines when to show the answer to the problem. A default value can be set "
+"in Advanced Settings. To revert setting a custom value, choose the 'Default'"
+" option."
+msgstr ""
+
+#: drag_and_drop_v2.py:145
+msgid "Default"
+msgstr ""
+
+#: drag_and_drop_v2.py:146
+msgid "Always"
+msgstr ""
+
+#: drag_and_drop_v2.py:147
+msgid "Answered"
+msgstr ""
+
+#: drag_and_drop_v2.py:148
+msgid "Attempted or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:149
+msgid "Closed"
+msgstr ""
+
+#: drag_and_drop_v2.py:150
+msgid "Finished"
+msgstr ""
+
+#: drag_and_drop_v2.py:151
+msgid "Correct or Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:152
+msgid "Past Due"
+msgstr ""
+
+#: drag_and_drop_v2.py:153
+msgid "Never"
+msgstr ""
+
+#: drag_and_drop_v2.py:154
+msgid "After All Attempts"
+msgstr ""
+
+#: drag_and_drop_v2.py:155
+msgid "After All Attempts or Correct"
+msgstr ""
+
+#: drag_and_drop_v2.py:156
+msgid "Attempted"
+msgstr ""
+
+#: drag_and_drop_v2.py:162
msgid "Problem Weight"
msgstr "题目分数占比"
-#: drag_and_drop_v2.py:138
+#: drag_and_drop_v2.py:163
msgid "Defines the number of points the problem is worth."
msgstr "设置此题目的总分。"
-#: drag_and_drop_v2.py:145
+#: drag_and_drop_v2.py:170
msgid "Item background color"
msgstr "项目背景颜色"
-#: drag_and_drop_v2.py:146
+#: drag_and_drop_v2.py:171
msgid ""
"The background color of draggable items in the problem (example: 'blue' or "
"'#0000ff')."
msgstr "题目中可拖拽项的背景颜色(例如: 'blue' or '#0000ff')。"
-#: drag_and_drop_v2.py:153
+#: drag_and_drop_v2.py:178
msgid "Item text color"
msgstr "项目文本颜色"
-#: drag_and_drop_v2.py:154
+#: drag_and_drop_v2.py:179
msgid "Text color to use for draggable items (example: 'white' or '#ffffff')."
msgstr "可拖拽项的文字颜色(例如:'white' or '#ffffff')。"
-#: drag_and_drop_v2.py:161
+#: drag_and_drop_v2.py:186
msgid "Maximum items per zone"
msgstr ""
-#: drag_and_drop_v2.py:162
+#: drag_and_drop_v2.py:187
msgid ""
"This setting limits the number of items that can be dropped into a single "
"zone."
msgstr ""
-#: drag_and_drop_v2.py:169
+#: drag_and_drop_v2.py:194
msgid "Problem data"
msgstr "问题数据"
-#: drag_and_drop_v2.py:171
+#: drag_and_drop_v2.py:196
msgid ""
"Information about zones, items, feedback, explanation and background image "
"for this problem. This information is derived from the input that a course "
"author provides via the interactive editor when configuring the problem."
msgstr ""
-#: drag_and_drop_v2.py:181
+#: drag_and_drop_v2.py:206
msgid ""
"Information about current positions of items that a learner has dropped on "
"the target image."
msgstr "关于学员已拖放到目标项目的那些项目当前位置的信息。"
-#: drag_and_drop_v2.py:188
+#: drag_and_drop_v2.py:213
msgid "Number of attempts learner used"
msgstr "学员已作答次数"
-#: drag_and_drop_v2.py:195
+#: drag_and_drop_v2.py:220
msgid "Indicates whether a learner has completed the problem at least once"
msgstr "指示学员是否已经至少完成了该一次"
-#: drag_and_drop_v2.py:202
+#: drag_and_drop_v2.py:227
msgid ""
"DEPRECATED. Keeps maximum score achieved by student as a weighted value."
msgstr ""
-#: drag_and_drop_v2.py:208
+#: drag_and_drop_v2.py:233
msgid ""
"Keeps maximum score achieved by student as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:215
+#: drag_and_drop_v2.py:240
msgid "Maximum score available of the problem as a raw value between 0 and 1."
msgstr ""
-#: drag_and_drop_v2.py:538
+#: drag_and_drop_v2.py:568
#, python-brace-format
msgid "Unknown DnDv2 mode {mode} - course is misconfigured"
msgstr "未知DnDv2模式{mode} - 课程配置错误"
-#: drag_and_drop_v2.py:613
+#: drag_and_drop_v2.py:644
msgid "show_answer handler should only be called for assessment mode"
msgstr "show_answer不应该仅适用于评分模式"
-#: drag_and_drop_v2.py:618
-msgid "There are attempts remaining"
-msgstr "未使用完所有答题机会"
+#: drag_and_drop_v2.py:649
+msgid "The answer is unavailable"
+msgstr ""
-#: drag_and_drop_v2.py:695
+#: drag_and_drop_v2.py:798
msgid "do_attempt handler should only be called for assessment mode"
msgstr "do_attempt不应该仅适用于评分模式"
-#: drag_and_drop_v2.py:700 drag_and_drop_v2.py:818
+#: drag_and_drop_v2.py:803 drag_and_drop_v2.py:921
msgid "Max number of attempts reached"
msgstr "已用完所有答题机会"
-#: drag_and_drop_v2.py:705
+#: drag_and_drop_v2.py:808
msgid "Submission deadline has passed."
msgstr ""
@@ -282,89 +341,93 @@ msgstr "加载拖放问题。"
msgid "Basic Settings"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:76
+#: templates/html/drag_and_drop_edit.html:53
+msgid "(inherited from Advanced Settings)"
+msgstr ""
+
+#: templates/html/drag_and_drop_edit.html:90
msgid "Introductory feedback"
msgstr "引言反馈"
-#: templates/html/drag_and_drop_edit.html:81
+#: templates/html/drag_and_drop_edit.html:95
msgid "Final feedback"
msgstr "最终反馈"
-#: templates/html/drag_and_drop_edit.html:86
+#: templates/html/drag_and_drop_edit.html:100
msgid "Explanation Text"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:95
+#: templates/html/drag_and_drop_edit.html:109
msgid "Zones"
msgstr "区域"
-#: templates/html/drag_and_drop_edit.html:100
+#: templates/html/drag_and_drop_edit.html:114
msgid "Background Image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:103
+#: templates/html/drag_and_drop_edit.html:117
msgid "Provide custom image"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:107
+#: templates/html/drag_and_drop_edit.html:121
msgid "Generate image automatically"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:112
+#: templates/html/drag_and_drop_edit.html:126
msgid "Background URL"
msgstr "背景 URL"
-#: templates/html/drag_and_drop_edit.html:119
+#: templates/html/drag_and_drop_edit.html:133
msgid "Change background"
msgstr "更改背景"
-#: templates/html/drag_and_drop_edit.html:121
+#: templates/html/drag_and_drop_edit.html:135
msgid ""
"For example, 'http://example.com/background.png' or "
"'/static/background.png'."
msgstr "例如:“http://example.com/background.png” or “/static/background.png”。"
-#: templates/html/drag_and_drop_edit.html:126
+#: templates/html/drag_and_drop_edit.html:140
msgid "Zone Layout"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:128
+#: templates/html/drag_and_drop_edit.html:142
msgid "Number of columns"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:136
+#: templates/html/drag_and_drop_edit.html:150
msgid "Number of rows"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:143
+#: templates/html/drag_and_drop_edit.html:157
msgid "Number of columns and rows."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:147
+#: templates/html/drag_and_drop_edit.html:161
msgid "Zone Size"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:149
+#: templates/html/drag_and_drop_edit.html:163
msgid "Zone width"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:157
+#: templates/html/drag_and_drop_edit.html:171
msgid "Zone height"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:164
+#: templates/html/drag_and_drop_edit.html:178
msgid "Size of a single zone in pixels."
msgstr ""
-#: templates/html/drag_and_drop_edit.html:167
+#: templates/html/drag_and_drop_edit.html:181
msgid "Generate image and zones"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:170
+#: templates/html/drag_and_drop_edit.html:184
msgid "Background description"
msgstr "背景描述"
-#: templates/html/drag_and_drop_edit.html:175
+#: templates/html/drag_and_drop_edit.html:189
msgid ""
"\n"
" Please provide a description of the image for non-visual users.\n"
@@ -373,55 +436,55 @@ msgid ""
" "
msgstr "\n 请为非可视用户提供图像描述。\n 该描述内容应提供充足的信息以允许任何人\n 即使不看图像也能解决问题。\n "
-#: templates/html/drag_and_drop_edit.html:185
+#: templates/html/drag_and_drop_edit.html:199
msgid "Zone labels"
msgstr "区域标签"
-#: templates/html/drag_and_drop_edit.html:188
+#: templates/html/drag_and_drop_edit.html:202
msgid "Display label names on the image"
msgstr "在图像上显示标签名称"
-#: templates/html/drag_and_drop_edit.html:192
+#: templates/html/drag_and_drop_edit.html:206
msgid "Zone borders"
msgstr "区域边框"
-#: templates/html/drag_and_drop_edit.html:195
+#: templates/html/drag_and_drop_edit.html:209
msgid "Display zone borders on the image"
msgstr "在图像上显示区域边框"
-#: templates/html/drag_and_drop_edit.html:201
+#: templates/html/drag_and_drop_edit.html:215
msgid "Display zone borders when dragging an item"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:206
+#: templates/html/drag_and_drop_edit.html:220
msgid "Zone definitions"
msgstr "答题区设置"
-#: templates/html/drag_and_drop_edit.html:212
+#: templates/html/drag_and_drop_edit.html:226
msgid "Add a zone"
msgstr "添加一个区域"
-#: templates/html/drag_and_drop_edit.html:226
+#: templates/html/drag_and_drop_edit.html:240
msgid "Items"
msgstr "项目"
-#: templates/html/drag_and_drop_edit.html:260
+#: templates/html/drag_and_drop_edit.html:274
msgid "Item definitions"
msgstr ""
-#: templates/html/drag_and_drop_edit.html:264
+#: templates/html/drag_and_drop_edit.html:278
msgid "Add an item"
msgstr "添加一个项目"
-#: templates/html/drag_and_drop_edit.html:274
+#: templates/html/drag_and_drop_edit.html:288
msgid "Continue"
msgstr "继续"
-#: templates/html/drag_and_drop_edit.html:278
+#: templates/html/drag_and_drop_edit.html:292
msgid "Save"
msgstr "保存"
-#: templates/html/drag_and_drop_edit.html:282
+#: templates/html/drag_and_drop_edit.html:296
msgid "Cancel"
msgstr "取消"
@@ -660,8 +723,8 @@ msgstr "发生了错误。无法加载拖放问题。"
msgid "You cannot add any more items to this zone."
msgstr ""
-#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:516
-#: public/js/drag_and_drop_edit.js:746
+#: public/js/drag_and_drop_edit.js:123 public/js/drag_and_drop_edit.js:520
+#: public/js/drag_and_drop_edit.js:751
msgid "There was an error with your form."
msgstr "您的表格有一个错误。"
@@ -669,15 +732,15 @@ msgstr "您的表格有一个错误。"
msgid "Please check over your submission."
msgstr "请核对您的提交信息。"
-#: public/js/drag_and_drop_edit.js:366
+#: public/js/drag_and_drop_edit.js:370
msgid "Zone {num}"
msgid_plural "Zone {num}"
msgstr[0] ""
-#: public/js/drag_and_drop_edit.js:517
+#: public/js/drag_and_drop_edit.js:521
msgid "Please check the values you entered."
msgstr ""
-#: public/js/drag_and_drop_edit.js:739
+#: public/js/drag_and_drop_edit.js:744
msgid "Saving"
msgstr "正在保存"
diff --git a/drag_and_drop_v2/utils.py b/drag_and_drop_v2/utils.py
index 7b0ec937c..65314cb40 100644
--- a/drag_and_drop_v2/utils.py
+++ b/drag_and_drop_v2/utils.py
@@ -120,6 +120,25 @@ class Constants:
STANDARD_MODE = "standard"
ASSESSMENT_MODE = "assessment"
+ ATTR_KEY_USER_IS_STAFF = "edx-platform.user_is_staff"
+
+
+class SHOWANSWER:
+ """
+ Constants for when to show answer
+ """
+ AFTER_ALL_ATTEMPTS = "after_all_attempts"
+ AFTER_ALL_ATTEMPTS_OR_CORRECT = "after_all_attempts_or_correct"
+ ALWAYS = "always"
+ ANSWERED = "answered"
+ ATTEMPTED = "attempted"
+ ATTEMPTED_NO_PAST_DUE = "attempted_no_past_due"
+ CLOSED = "closed"
+ CORRECT_OR_PAST_DUE = "correct_or_past_due"
+ DEFAULT = "default"
+ FINISHED = "finished"
+ NEVER = "never"
+ PAST_DUE = "past_due"
class StateMigration:
diff --git a/setup.py b/setup.py
index 918d6bbce..12012ef6d 100644
--- a/setup.py
+++ b/setup.py
@@ -23,7 +23,7 @@ def package_data(pkg, root_list):
setup(
name='xblock-drag-and-drop-v2',
- version='2.4.2',
+ version='2.5.0',
description='XBlock - Drag-and-Drop v2',
packages=['drag_and_drop_v2'],
install_requires=[
diff --git a/tests/integration/test_interaction_assessment.py b/tests/integration/test_interaction_assessment.py
index 7e4cb2b60..cbbd987df 100644
--- a/tests/integration/test_interaction_assessment.py
+++ b/tests/integration/test_interaction_assessment.py
@@ -20,7 +20,7 @@
from drag_and_drop_v2.default_data import (BOTTOM_ZONE_ID, DEFAULT_DATA, FINISH_FEEDBACK,
MIDDLE_ZONE_ID, START_FEEDBACK,
TOP_ZONE_ID, TOP_ZONE_TITLE)
-from drag_and_drop_v2.utils import Constants, FeedbackMessages
+from drag_and_drop_v2.utils import Constants, FeedbackMessages, SHOWANSWER
from .test_base import BaseIntegrationTest
from .test_interaction import (ITEM_DRAG_KEYBOARD_KEYS, DefaultDataTestMixin,
@@ -39,11 +39,19 @@ class DefaultAssessmentDataTestMixin(DefaultDataTestMixin):
Provides a test scenario with default options in assessment mode.
"""
MAX_ATTEMPTS = 5
+ SHOW_ANSWER_STATUS = SHOWANSWER.FINISHED
def _get_scenario_xml(self): # pylint: disable=no-self-use
return """
-
- """.format(mode=Constants.ASSESSMENT_MODE, max_attempts=self.MAX_ATTEMPTS)
+
+
+
+ """.format(mode=Constants.ASSESSMENT_MODE,
+ max_attempts=self.MAX_ATTEMPTS,
+ show_answer_status=self.SHOW_ANSWER_STATUS)
class AssessmentTestMixin(object):
@@ -223,12 +231,13 @@ def test_show_answer(self):
more attempts remaining, is disabled and displays correct answers when
clicked.
"""
- show_answer_button = self._get_show_answer_button()
- self.assertTrue(show_answer_button.is_displayed())
+ with self.assertRaises(NoSuchElementException):
+ self._get_show_answer_button()
self.place_item(0, TOP_ZONE_ID, Keys.RETURN)
for _ in range(self.MAX_ATTEMPTS-1):
- self.assertEqual(show_answer_button.get_attribute('disabled'), 'true')
+ with self.assertRaises(NoSuchElementException):
+ self._get_show_answer_button()
self.click_submit()
# Place an incorrect item on the final attempt.
@@ -237,8 +246,9 @@ def test_show_answer(self):
# A feedback popup should open upon final submission.
popup = self._get_popup()
- self.assertTrue(popup.is_displayed())
+ show_answer_button = self._get_show_answer_button()
+ self.assertTrue(popup.is_displayed())
self.assertIsNone(show_answer_button.get_attribute('disabled'))
self.click_show_answer()
@@ -255,9 +265,6 @@ def test_show_answer_user_selected_zone(self, dropped_zone_id):
"""
zones = dict(self.all_zones)
- show_answer_button = self._get_show_answer_button()
- self.assertTrue(show_answer_button.is_displayed())
-
# Place an item with multiple correct zones
self.place_item(3, dropped_zone_id, Keys.RETURN)
@@ -265,6 +272,8 @@ def test_show_answer_user_selected_zone(self, dropped_zone_id):
for _ in range(self.MAX_ATTEMPTS):
self.click_submit()
+ show_answer_button = self._get_show_answer_button()
+ self.assertTrue(show_answer_button.is_displayed())
self.assertIsNone(show_answer_button.get_attribute('disabled'))
self.click_show_answer()
@@ -491,13 +500,13 @@ def test_explanation(self, scenario_id: int, explanation: str, should_display: b
The docstring of the class explains when the explanation should be visible.
"""
self.load_scenario(explanation, scenario_id)
- show_answer_button = self._get_show_answer_button()
- self.assertTrue(show_answer_button.is_displayed())
self.place_item(3, MIDDLE_ZONE_ID, Keys.RETURN)
self.click_submit()
+ show_answer_button = self._get_show_answer_button()
+ self.assertTrue(show_answer_button.is_displayed())
self.assertIsNone(show_answer_button.get_attribute('disabled'))
self.click_show_answer()
diff --git a/tests/pylintrc b/tests/pylintrc
index 4127887a6..65b832400 100644
--- a/tests/pylintrc
+++ b/tests/pylintrc
@@ -29,7 +29,7 @@ disable=
line-too-long
[SIMILARITIES]
-min-similarity-lines=4
+min-similarity-lines=6
[OPTIONS]
max-args=6
diff --git a/tests/unit/data/assessment/config_out.json b/tests/unit/data/assessment/config_out.json
index a41bf7043..8227cc2d6 100644
--- a/tests/unit/data/assessment/config_out.json
+++ b/tests/unit/data/assessment/config_out.json
@@ -9,6 +9,7 @@
"graded": false,
"weighted_max_score": 5,
"show_title": true,
+ "answer_available": false,
"problem_text": "Can you solve this drag-and-drop problem?",
"show_problem_header": true,
"target_img_expanded_url": "http://placehold.it/800x600",
diff --git a/tests/unit/data/assessment/settings.json b/tests/unit/data/assessment/settings.json
index 568455ec8..06ee22806 100644
--- a/tests/unit/data/assessment/settings.json
+++ b/tests/unit/data/assessment/settings.json
@@ -8,5 +8,6 @@
"weight": 5,
"item_background_color": "",
"item_text_color": "",
- "url_name": "test"
+ "url_name": "test",
+ "answer_available": false
}
diff --git a/tests/unit/data/html/config_out.json b/tests/unit/data/html/config_out.json
index 0b2f89d0a..ae8bb9570 100644
--- a/tests/unit/data/html/config_out.json
+++ b/tests/unit/data/html/config_out.json
@@ -9,6 +9,7 @@
"graded": false,
"weighted_max_score": 1,
"show_title": false,
+ "answer_available": false,
"problem_text": "Solve this drag-and-drop problem.",
"show_problem_header": false,
"target_img_expanded_url": "/expanded/url/to/drag_and_drop_v2/public/img/triangle.png",
diff --git a/tests/unit/data/html/settings.json b/tests/unit/data/html/settings.json
index dc26eb779..0e8d959cf 100644
--- a/tests/unit/data/html/settings.json
+++ b/tests/unit/data/html/settings.json
@@ -7,5 +7,6 @@
"weight": 1,
"item_background_color": "white",
"item_text_color": "#000080",
- "url_name": "unique_name"
+ "url_name": "unique_name",
+ "answer_available": false
}
diff --git a/tests/unit/data/old/config_out.json b/tests/unit/data/old/config_out.json
index 4b1624a8d..79b441217 100644
--- a/tests/unit/data/old/config_out.json
+++ b/tests/unit/data/old/config_out.json
@@ -9,6 +9,7 @@
"graded": false,
"weighted_max_score": 1,
"show_title": true,
+ "answer_available": false,
"problem_text": "",
"show_problem_header": true,
"target_img_expanded_url": "http://i0.kym-cdn.com/photos/images/newsfeed/000/030/404/1260585284155.png",
diff --git a/tests/unit/data/plain/config_out.json b/tests/unit/data/plain/config_out.json
index 7c795da39..8b23f9c93 100644
--- a/tests/unit/data/plain/config_out.json
+++ b/tests/unit/data/plain/config_out.json
@@ -9,6 +9,7 @@
"graded": false,
"weighted_max_score": 1,
"show_title": true,
+ "answer_available": false,
"problem_text": "Can you solve this drag-and-drop problem?",
"show_problem_header": true,
"target_img_expanded_url": "http://placehold.it/800x600",
diff --git a/tests/unit/data/plain/settings.json b/tests/unit/data/plain/settings.json
index 5f051896f..5bd6a72e7 100644
--- a/tests/unit/data/plain/settings.json
+++ b/tests/unit/data/plain/settings.json
@@ -8,5 +8,6 @@
"item_background_color": "",
"item_text_color": "",
"url_name": "test",
- "max_items_per_zone": 4
+ "max_items_per_zone": 4,
+ "answer_available": false
}
diff --git a/tests/unit/test_advanced.py b/tests/unit/test_assessment_mode.py
similarity index 62%
rename from tests/unit/test_advanced.py
rename to tests/unit/test_assessment_mode.py
index 0d933a62a..4e92c71cf 100644
--- a/tests/unit/test_advanced.py
+++ b/tests/unit/test_assessment_mode.py
@@ -1,8 +1,6 @@
-# Imports ###########################################################
-
from __future__ import absolute_import
-import json
+import itertools
import random
import unittest
@@ -10,308 +8,11 @@
import mock
import six
from six.moves import range
-from xblockutils.resources import ResourceLoader
-
-from drag_and_drop_v2.utils import FeedbackMessages
-
-from ..utils import TestCaseMixin, generate_max_and_attempts, make_block
-
-# Globals ###########################################################
-
-loader = ResourceLoader(__name__)
-
-
-# Classes ###########################################################
-
-class BaseDragAndDropAjaxFixture(TestCaseMixin):
- ZONE_1 = None
- ZONE_2 = None
-
- OVERALL_FEEDBACK_KEY = 'overall_feedback'
- FEEDBACK_KEY = 'feedback'
-
- FEEDBACK = {
- 0: {"correct": None, "incorrect": None},
- 1: {"correct": None, "incorrect": None},
- 2: {"correct": None, "incorrect": None}
- }
-
- START_FEEDBACK = None
- FINAL_FEEDBACK = None
-
- FOLDER = None
-
- def setUp(self):
- self.patch_workbench()
- self.block = make_block()
- initial_settings = self.initial_settings()
- for field in initial_settings:
- setattr(self.block, field, initial_settings[field])
- self.block.data = self.initial_data()
-
- @staticmethod
- def _make_feedback_message(message=None, message_class=None):
- return {"message": message, "message_class": message_class}
-
- @classmethod
- def initial_data(cls):
- return json.loads(loader.load_unicode('data/{}/data.json'.format(cls.FOLDER)))
-
- @classmethod
- def initial_settings(cls):
- return json.loads(loader.load_unicode('data/{}/settings.json'.format(cls.FOLDER)))
-
- @classmethod
- def expected_student_data(cls):
- return json.loads(loader.load_unicode('data/{}/config_out.json'.format(cls.FOLDER)))
-
- def test_student_view_data(self):
- data = self.block.student_view_data()
- expected = self.expected_student_data()
- expected['block_id'] = data['block_id'] # Block ids aren't stable
- self.assertEqual(data, expected)
-
-
-@ddt.ddt
-class StandardModeFixture(BaseDragAndDropAjaxFixture):
- """
- Common tests for drag and drop in standard mode
- """
- def _make_item_feedback_message(self, item_id, key="incorrect"):
- if self.FEEDBACK[item_id][key]:
- return self._make_feedback_message(self.FEEDBACK[item_id][key])
- else:
- return None
-
- def test_reset_no_item_feedback(self):
- data = {"val": 1, "zone": self.ZONE_1, "x_percent": "33%", "y_percent": "11%"}
- self.call_handler(self.DROP_ITEM_HANDLER, data)
-
- res = self.call_handler(self.RESET_HANDLER, data={})
- expected_overall_feedback = [
- self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
- ]
- self.assertEqual(res[self.OVERALL_FEEDBACK_KEY], expected_overall_feedback)
-
- def test_user_state_no_item_state(self):
- res = self.call_handler(self.USER_STATE_HANDLER, data={})
- expected_overall_feedback = [
- self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
- ]
- self.assertEqual(res[self.OVERALL_FEEDBACK_KEY], expected_overall_feedback)
-
- def test_drop_item_wrong_with_feedback(self):
- self.block.weight = 2
- item_id, zone_id = 0, self.ZONE_2
- data = {"val": item_id, "zone": zone_id}
- res = self.call_handler(self.DROP_ITEM_HANDLER, data)
- item_feedback_message = self._make_item_feedback_message(item_id)
- expected_feedback = [item_feedback_message] if item_feedback_message else []
- # the item was dropped into wrong zone, but we have two items that were correctly left in the bank,
- # so the raw score is 2 / 4.0.
- expected_grade = self.block.weight * 2 / 4.0
-
- self.assertEqual(res, {
- "overall_feedback": [
- self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
- ],
- "finished": False,
- "correct": False,
- "grade": expected_grade,
- "feedback": expected_feedback
- })
-
- def test_drop_item_wrong_without_feedback(self):
- self.block.weight = 2
- item_id, zone_id = 2, self.ZONE_1
- data = {"val": item_id, "zone": zone_id}
- res = self.call_handler(self.DROP_ITEM_HANDLER, data)
- item_feedback_message = self._make_item_feedback_message(item_id)
- expected_feedback = [item_feedback_message] if item_feedback_message else []
- # the item was dropped into wrong zone, but we have two items that were correctly left in the bank,
- # so the raw score is 2 / 4.0.
- expected_grade = self.block.weight * 2 / 4.0
-
- self.assertEqual(res, {
- "overall_feedback": [
- self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
- ],
- "finished": False,
- "correct": False,
- "grade": expected_grade,
- "feedback": expected_feedback
- })
-
- def test_drop_item_correct(self):
- self.block.weight = 2
- item_id, zone_id = 0, self.ZONE_1
- data = {"val": item_id, "zone": zone_id}
- res = self.call_handler(self.DROP_ITEM_HANDLER, data)
- item_feedback_message = self._make_item_feedback_message(item_id, key="correct")
- expected_feedback = [item_feedback_message] if item_feedback_message else []
- # Item 0 is in correct zone, items 2 and 3 don't belong to any zone so it is correct to leave them in the bank.
- # The only item that is not in correct position yet is item 1. The grade is therefore 3/4. The weight of the
- # problem means that the displayed grade will be 1.5.
- expected_grade = self.block.weight * 3 / 4.0
-
- self.assertEqual(res, {
- "overall_feedback": [
- self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
- ],
- "finished": False,
- "correct": True,
- "grade": expected_grade,
- "feedback": expected_feedback
- })
-
- @ddt.data(*[random.randint(1, 50) for _ in range(5)]) # pylint: disable=star-args
- def test_grading(self, weight):
- self.block.weight = weight
-
- published_grades = []
-
- def mock_publish(_, event, params):
- if event == 'grade':
- published_grades.append(params)
- self.block.runtime.publish = mock_publish
-
- # Before the user starts working on the problem, grade should equal zero.
- self.assertEqual(0, self.block.raw_earned)
-
- # Drag the first item into the correct zone.
- self.call_handler(self.DROP_ITEM_HANDLER, {"val": 0, "zone": self.ZONE_1})
- self.assertEqual(1, len(published_grades))
- # The DnD test block has four items defined in the data fixtures:
- # 1 item that belongs to ZONE_1, 1 item that belongs to ZONE_2, and two decoy items.
- # After we drop the first item into ZONE_1, 3 out of 4 items are already in correct positions
- # (1st item in ZONE_1 and two decoy items left in the bank). The grade at this point is therefore 3/4 * weight.
- self.assertEqual(0.75, self.block.raw_earned)
- self.assertEqual(0.75 * self.block.weight, self.block.weighted_grade())
- self.assertEqual({'value': 0.75, 'max_value': 1, 'only_if_higher': None}, published_grades[-1])
-
- # Drag the second item into correct zone.
- self.call_handler(self.DROP_ITEM_HANDLER, {"val": 1, "zone": self.ZONE_2})
-
- self.assertEqual(2, len(published_grades))
- # All items are now placed in the right place, the user therefore gets the full grade.
- self.assertEqual(1, self.block.raw_earned)
- self.assertEqual({'value': 1, 'max_value': 1, 'only_if_higher': None}, published_grades[-1])
-
- @ddt.data(True, False)
- def test_grading_deprecation(self, grade_below_one):
- self.assertFalse(self.block.has_submitted_answer())
- if grade_below_one:
- self.block.weight = 1.2
- self.block.grade = 0.96
- else:
- self.block.weight = 50
- self.block.grade = 40
+from drag_and_drop_v2.utils import FeedbackMessages, SHOWANSWER as SA
+from .test_fixtures import BaseDragAndDropAjaxFixture
- published_grades = []
- # for rescoring purposes has_submitted_answer should be true even if the block
- # only has a deprecated weighted grade
- self.assertTrue(self.block.has_submitted_answer())
- self.assertIsNone(self.block._get_raw_earned_if_set()) # pylint: disable=protected-access
-
- def mock_publish(_, event, params):
- if event == 'grade':
- published_grades.append(params)
- self.block.runtime.publish = mock_publish
-
- # Drag the first item into the correct zone.
- self.call_handler(self.DROP_ITEM_HANDLER, {"val": 0, "zone": self.ZONE_1})
-
- # The grade should be overridden even though self.grade will go down, since the block is at version 0
- self.assertEqual(1, len(published_grades))
- self.assertEqual(0.75, self.block.raw_earned)
- self.assertEqual({'value': 0.75, 'max_value': 1, 'only_if_higher': None}, published_grades[-1])
-
- # Drag the first item into the incorrect zone.
- self.call_handler(self.DROP_ITEM_HANDLER, {"val": 0, "zone": self.ZONE_2})
-
- # The grade should not be updated now that the block has a raw value in self.grade
- self.assertEqual(1, len(published_grades))
- self.assertEqual(0.75, self.block.raw_earned)
-
- # Drag the first item back into the correct zone.
- self.call_handler(self.DROP_ITEM_HANDLER, {"val": 0, "zone": self.ZONE_1})
-
- # The grade should not be updated because user has already achieved a 0.75 raw score
- self.assertEqual(1, len(published_grades))
- self.assertEqual(0.75, self.block.raw_earned)
-
- # Drag the second item into correct zone.
- self.call_handler(self.DROP_ITEM_HANDLER, {"val": 1, "zone": self.ZONE_2})
-
- self.assertEqual(2, len(published_grades))
- # All items are now placed in the right place, the user therefore gets the full grade.
- self.assertEqual(1, self.block.raw_earned)
- self.assertEqual({'value': 1, 'max_value': 1, 'only_if_higher': None}, published_grades[-1])
-
- def test_drop_item_final(self):
- self.block.weight = 2
- data = {"val": 0, "zone": self.ZONE_1}
- self.call_handler(self.DROP_ITEM_HANDLER, data)
-
- # Item 0 is in correct zone, items 2 and 3 don't belong to any zone so it is correct to leave them in the bank.
- # The only item that is not in correct position yet is item 1. The raw grade is therefore 3/4.
- expected_grade = self.block.weight * 3 / 4.0
- expected_state = {
- "items": {
- "0": {"correct": True, "zone": self.ZONE_1}
- },
- "finished": False,
- "attempts": 0,
- "grade": expected_grade,
- 'overall_feedback': [
- self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
- ],
- }
- self.assertEqual(expected_state, self.call_handler('student_view_user_state', method="GET"))
-
- res = self.call_handler(self.DROP_ITEM_HANDLER, {"val": 1, "zone": self.ZONE_2})
- # All four items are in correct position, so the final raw grade is 4/4.
- expected_grade = self.block.weight * 4 / 4.0
- self.assertEqual(res, {
- "overall_feedback": [
- self._make_feedback_message(self.FINAL_FEEDBACK, FeedbackMessages.MessageClasses.FINAL_FEEDBACK)
- ],
- "finished": True,
- "correct": True,
- "grade": expected_grade,
- "feedback": [self._make_feedback_message(self.FEEDBACK[1]["correct"])]
- })
-
- expected_state = {
- "items": {
- "0": {"correct": True, "zone": self.ZONE_1},
- "1": {"correct": True, "zone": self.ZONE_2}
- },
- "finished": True,
- "attempts": 0,
- "grade": expected_grade,
- 'overall_feedback': [
- self._make_feedback_message(self.FINAL_FEEDBACK, FeedbackMessages.MessageClasses.FINAL_FEEDBACK)
- ],
- }
- self.assertEqual(expected_state, self.call_handler('student_view_user_state', method="GET"))
-
- def test_do_attempt_not_available(self):
- """
- Tests that do_attempt handler returns 400 error for standard mode DnDv2
- """
- res = self.call_handler(self.DO_ATTEMPT_HANDLER, expect_json=False)
-
- self.assertEqual(res.status_code, 400)
-
- def test_show_answer_not_available(self):
- """
- Tests that do_attempt handler returns 400 error for standard mode DnDv2
- """
- res = self.call_handler(self.SHOW_ANSWER_HANDLER, expect_json=False)
-
- self.assertEqual(res.status_code, 400)
+from ..utils import generate_max_and_attempts
@ddt.ddt
@@ -606,25 +307,223 @@ def test_get_user_state_does_not_include_correctness(self):
self.assertEqual(self.block.item_state, original_item_state)
+ def _validate_answer(self, expected_status_code: str):
+ """
+ Helper method to call the "Show Answer" handler and verify its return code.
+ """
+ res = self.call_handler(self.SHOW_ANSWER_HANDLER, data={}, expect_json=False)
+ self.assertEqual(res.status_code, expected_status_code)
+
@ddt.data(
- (None, 10, True),
- (0, 12, True),
- (3, 3, False),
+ *itertools.product([SA.ALWAYS], [200]),
+ *itertools.product(
+ [
+ SA.AFTER_ALL_ATTEMPTS,
+ SA.AFTER_ALL_ATTEMPTS_OR_CORRECT,
+ SA.ANSWERED,
+ SA.ATTEMPTED,
+ SA.ATTEMPTED_NO_PAST_DUE,
+ SA.CLOSED,
+ SA.CORRECT_OR_PAST_DUE,
+ SA.DEFAULT,
+ SA.FINISHED,
+ SA.NEVER,
+ SA.PAST_DUE,
+ ],
+ [409],
+ ),
)
@ddt.unpack
- def test_show_answer_validation(self, max_attempts, attempts, expect_validation_error):
+ def test_show_answer_always(self, showanswer_option, expected_status_code):
"""
- Test that show_answer returns a 409 when max_attempts = None, or when
- there are still attempts remaining.
+ Test that a user can request an answer without submitting any attempts.
"""
- self.block.max_attempts = max_attempts
- self.block.attempts = attempts
- res = self.call_handler(self.SHOW_ANSWER_HANDLER, data={}, expect_json=False)
+ self.block.showanswer = showanswer_option
+ self._validate_answer(expected_status_code)
- if expect_validation_error:
- self.assertEqual(res.status_code, 409)
- else:
- self.assertEqual(res.status_code, 200)
+ @ddt.data(
+ *itertools.product([SA.ALWAYS, SA.ATTEMPTED, SA.ATTEMPTED_NO_PAST_DUE], [200]),
+ *itertools.product(
+ [
+ SA.AFTER_ALL_ATTEMPTS,
+ SA.AFTER_ALL_ATTEMPTS_OR_CORRECT,
+ SA.ANSWERED,
+ SA.CLOSED,
+ SA.CORRECT_OR_PAST_DUE,
+ SA.DEFAULT,
+ SA.FINISHED,
+ SA.NEVER,
+ SA.PAST_DUE,
+ ],
+ [409],
+ ),
+ )
+ @ddt.unpack
+ def test_show_answer_for_attempted(self, showanswer_option, expected_status_code):
+ """
+ Test that a user can request an answer after submitting at least one attempt.
+ """
+ self.block.showanswer = showanswer_option
+ self.block.attempts = 1
+ self._validate_answer(expected_status_code)
+
+ @ddt.data(
+ *itertools.product(
+ [SA.AFTER_ALL_ATTEMPTS_OR_CORRECT, SA.ALWAYS, SA.ANSWERED, SA.CORRECT_OR_PAST_DUE, SA.FINISHED], [200]
+ ),
+ *itertools.product(
+ [
+ SA.AFTER_ALL_ATTEMPTS,
+ SA.ATTEMPTED,
+ SA.ATTEMPTED_NO_PAST_DUE,
+ SA.CLOSED,
+ SA.DEFAULT,
+ SA.NEVER,
+ SA.PAST_DUE,
+ ],
+ [409],
+ ),
+ )
+ @ddt.unpack
+ @mock.patch('drag_and_drop_v2.DragAndDropBlock.is_correct', return_value=True)
+ def test_show_answer_for_correct_answer(self, showanswer_option, expected_status_code, _mock_is_correct):
+ """
+ Test that a user can request an answer once they submit a correct answer.
+
+ Note: when an Instructor resets the number of Learner's attempts to zero, it doesn't reset the user's state,
+ so the answer can still be marked as correct.
+ """
+ self.block.showanswer = showanswer_option
+ self._validate_answer(expected_status_code)
+
+ @ddt.data(
+ *itertools.product(
+ [
+ SA.ALWAYS,
+ SA.ATTEMPTED,
+ SA.ATTEMPTED_NO_PAST_DUE,
+ SA.AFTER_ALL_ATTEMPTS,
+ SA.AFTER_ALL_ATTEMPTS_OR_CORRECT,
+ SA.CLOSED,
+ SA.FINISHED,
+ ],
+ [200],
+ ),
+ *itertools.product(
+ [
+ SA.ANSWERED,
+ SA.CORRECT_OR_PAST_DUE,
+ SA.DEFAULT,
+ SA.NEVER,
+ SA.PAST_DUE,
+ ],
+ [409],
+ ),
+ )
+ @ddt.unpack
+ def test_show_answer_for_no_remaining_attempts(self, showanswer_option, expected_status_code):
+ self.block.showanswer = showanswer_option
+ self.block.attempts = 1
+ self.block.max_attempts = 1
+ self._validate_answer(expected_status_code)
+
+ @ddt.data(
+ *itertools.product(
+ [
+ SA.ALWAYS,
+ SA.ATTEMPTED,
+ SA.CLOSED,
+ SA.FINISHED,
+ SA.PAST_DUE,
+ SA.CORRECT_OR_PAST_DUE,
+ ],
+ [200],
+ ),
+ *itertools.product(
+ [
+ SA.AFTER_ALL_ATTEMPTS,
+ SA.AFTER_ALL_ATTEMPTS_OR_CORRECT,
+ SA.ANSWERED,
+ SA.ATTEMPTED_NO_PAST_DUE,
+ SA.DEFAULT,
+ SA.NEVER,
+ ],
+ [409],
+ ),
+ )
+ @ddt.unpack
+ @mock.patch('drag_and_drop_v2.DragAndDropBlock.has_submission_deadline_passed', return_value=True)
+ def test_show_answer_past_due(self, showanswer_option, expected_status_code, _mock_deadline_passed):
+ """
+ Test that a user can request an answer after the due date even if they had not submitted any attempts.
+ """
+ self.block.showanswer = showanswer_option
+ self._validate_answer(expected_status_code)
+
+ @ddt.data(
+ *itertools.product(
+ [
+ SA.ALWAYS,
+ SA.ATTEMPTED,
+ SA.ATTEMPTED_NO_PAST_DUE,
+ SA.CLOSED,
+ SA.FINISHED,
+ SA.PAST_DUE,
+ SA.CORRECT_OR_PAST_DUE,
+ ],
+ [200],
+ ),
+ *itertools.product(
+ [
+ SA.AFTER_ALL_ATTEMPTS,
+ SA.AFTER_ALL_ATTEMPTS_OR_CORRECT,
+ SA.ANSWERED,
+ SA.DEFAULT,
+ SA.NEVER,
+ ],
+ [409],
+ ),
+ )
+ @ddt.unpack
+ @mock.patch('drag_and_drop_v2.DragAndDropBlock.has_submission_deadline_passed', return_value=True)
+ def test_show_answer_past_due_for_attempted(self, showanswer_option, expected_status_code, _mock_deadline_passed):
+ """
+ Test that a user can request an answer after the due date if they had submitted at least one attempt.
+ """
+ self.block.showanswer = showanswer_option
+ self.block.attempts = 1
+ self._validate_answer(expected_status_code)
+
+ @ddt.data(
+ *itertools.product(
+ [
+ SA.AFTER_ALL_ATTEMPTS,
+ SA.AFTER_ALL_ATTEMPTS_OR_CORRECT,
+ SA.ALWAYS,
+ SA.ANSWERED,
+ SA.ATTEMPTED,
+ SA.ATTEMPTED_NO_PAST_DUE,
+ SA.CLOSED,
+ SA.CORRECT_OR_PAST_DUE,
+ SA.DEFAULT,
+ SA.FINISHED,
+ SA.PAST_DUE,
+ ],
+ [200],
+ ),
+ *itertools.product([SA.NEVER], [409]),
+ )
+ @ddt.unpack
+ def test_show_answer_for_staff_user(self, showanswer_option, expected_status_code):
+ """
+ Test that a user with staff permissions can request an answer unless its visibility is set to "never".
+ """
+ mock_service = mock.MagicMock()
+ mock_service.get_current_user.opt_attrs.get.return_value = True
+ self.block.runtime.service = mock_service
+
+ self.block.showanswer = showanswer_option
+ self._validate_answer(expected_status_code)
def test_get_correct_state(self):
"""
@@ -652,51 +551,6 @@ def test_get_correct_state(self):
self.assertIn(solution, self._get_all_solutions())
-class TestDragAndDropHtmlData(StandardModeFixture, unittest.TestCase):
- FOLDER = "html"
-
- ZONE_1 = "Zone 1 "
- ZONE_2 = "Zone 2 "
-
- FEEDBACK = {
- 0: {"correct": "Yes 1 ", "incorrect": "No 1 "},
- 1: {"correct": "Yes 2 ", "incorrect": "No 2 "},
- 2: {"correct": "", "incorrect": ""}
- }
-
- INITIAL_FEEDBACK = "HTML Intro Feed"
- FINAL_FEEDBACK = "Final feedback !"
-
-
-class TestDragAndDropPlainData(StandardModeFixture, unittest.TestCase):
- FOLDER = "plain"
-
- ZONE_1 = "zone-1"
- ZONE_2 = "zone-2"
-
- FEEDBACK = {
- 0: {"correct": "Yes 1", "incorrect": "No 1"},
- 1: {"correct": "Yes 2", "incorrect": "No 2"},
- 2: {"correct": "", "incorrect": ""}
- }
-
- INITIAL_FEEDBACK = "This is the initial feedback."
- FINAL_FEEDBACK = "This is the final feedback."
-
-
-class TestOldDataFormat(TestDragAndDropPlainData):
- """
- Make sure we can work with the slightly-older format for 'data' field values.
- """
- FOLDER = "old"
-
- INITIAL_FEEDBACK = "Intro Feed"
- FINAL_FEEDBACK = "Final Feed"
-
- ZONE_1 = "Zone 1"
- ZONE_2 = "Zone 2"
-
-
class TestDragAndDropAssessmentData(AssessmentModeFixture, unittest.TestCase):
FOLDER = "assessment"
@@ -959,5 +813,4 @@ def mock_publish(_, event, params):
def test_do_attempt_correct_takes_decoy_into_account(self):
self._submit_solution({0: self.ZONE_1, 1: self.ZONE_2, 2: self.ZONE_2, 3: self.ZONE_2})
res = self._do_attempt()
-
self.assertFalse(res['correct'])
diff --git a/tests/unit/test_basics.py b/tests/unit/test_basics.py
index 55164c150..735ecdb8d 100644
--- a/tests/unit/test_basics.py
+++ b/tests/unit/test_basics.py
@@ -42,6 +42,7 @@ def _make_submission(modify_submission=None):
'show_title': False,
'problem_text': "Problem Drag & Drop",
'show_problem_header': False,
+ 'showanswer': "attempted",
'item_background_color': 'cornflowerblue',
'item_text_color': 'coral',
'weight': '5',
@@ -94,6 +95,7 @@ def test_student_view_data(self):
"show_title": True,
"problem_text": "",
"max_items_per_zone": None,
+ "answer_available": False,
"show_problem_header": True,
"target_img_expanded_url": '/expanded/url/to/drag_and_drop_v2/public/img/triangle.png',
"target_img_description": TARGET_IMG_DESCRIPTION,
@@ -307,6 +309,7 @@ def test_legacy_state_support(self):
})
def test_studio_submit(self):
+
body = self._make_submission()
res = self.call_handler('studio_submit', body)
self.assertEqual(res, {'result': 'success'})
diff --git a/tests/unit/test_fixtures.py b/tests/unit/test_fixtures.py
new file mode 100644
index 000000000..59048bda3
--- /dev/null
+++ b/tests/unit/test_fixtures.py
@@ -0,0 +1,58 @@
+from __future__ import absolute_import
+
+import json
+
+from xblockutils.resources import ResourceLoader
+
+from tests.utils import TestCaseMixin, make_block
+
+loader = ResourceLoader(__name__)
+
+
+class BaseDragAndDropAjaxFixture(TestCaseMixin):
+ ZONE_1 = None
+ ZONE_2 = None
+
+ OVERALL_FEEDBACK_KEY = 'overall_feedback'
+ FEEDBACK_KEY = 'feedback'
+
+ FEEDBACK = {
+ 0: {"correct": None, "incorrect": None},
+ 1: {"correct": None, "incorrect": None},
+ 2: {"correct": None, "incorrect": None},
+ }
+
+ START_FEEDBACK = None
+ FINAL_FEEDBACK = None
+
+ FOLDER = None
+
+ def setUp(self):
+ self.patch_workbench()
+ self.block = make_block()
+ initial_settings = self.initial_settings()
+ for field in initial_settings:
+ setattr(self.block, field, initial_settings[field])
+ self.block.data = self.initial_data()
+
+ @staticmethod
+ def _make_feedback_message(message=None, message_class=None):
+ return {"message": message, "message_class": message_class}
+
+ @classmethod
+ def initial_data(cls):
+ return json.loads(loader.load_unicode('data/{}/data.json'.format(cls.FOLDER)))
+
+ @classmethod
+ def initial_settings(cls):
+ return json.loads(loader.load_unicode('data/{}/settings.json'.format(cls.FOLDER)))
+
+ @classmethod
+ def expected_student_data(cls):
+ return json.loads(loader.load_unicode('data/{}/config_out.json'.format(cls.FOLDER)))
+
+ def test_student_view_data(self):
+ data = self.block.student_view_data()
+ expected = self.expected_student_data()
+ expected['block_id'] = data['block_id'] # Block ids aren't stable
+ self.assertEqual(data, expected)
diff --git a/tests/unit/test_indexibility.py b/tests/unit/test_indexibility.py
index 332f265dc..0604210e9 100644
--- a/tests/unit/test_indexibility.py
+++ b/tests/unit/test_indexibility.py
@@ -1,6 +1,6 @@
import unittest
-from .test_advanced import BaseDragAndDropAjaxFixture
+from .test_fixtures import BaseDragAndDropAjaxFixture
class TestPlainDragAndDropIndexibility(BaseDragAndDropAjaxFixture, unittest.TestCase):
diff --git a/tests/unit/test_standard_mode.py b/tests/unit/test_standard_mode.py
new file mode 100644
index 000000000..8505510cc
--- /dev/null
+++ b/tests/unit/test_standard_mode.py
@@ -0,0 +1,296 @@
+from __future__ import absolute_import
+
+import random
+import unittest
+
+import ddt
+
+from drag_and_drop_v2.utils import FeedbackMessages
+from tests.unit.test_fixtures import BaseDragAndDropAjaxFixture
+
+
+@ddt.ddt
+class StandardModeFixture(BaseDragAndDropAjaxFixture):
+ """
+ Common tests for drag and drop in standard mode
+ """
+ def _make_item_feedback_message(self, item_id, key="incorrect"):
+ if self.FEEDBACK[item_id][key]:
+ return self._make_feedback_message(self.FEEDBACK[item_id][key])
+ else:
+ return None
+
+ def test_reset_no_item_feedback(self):
+ data = {"val": 1, "zone": self.ZONE_1, "x_percent": "33%", "y_percent": "11%"}
+ self.call_handler(self.DROP_ITEM_HANDLER, data)
+
+ res = self.call_handler(self.RESET_HANDLER, data={})
+ expected_overall_feedback = [
+ self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
+ ]
+ self.assertEqual(res[self.OVERALL_FEEDBACK_KEY], expected_overall_feedback)
+
+ def test_user_state_no_item_state(self):
+ res = self.call_handler(self.USER_STATE_HANDLER, data={})
+ expected_overall_feedback = [
+ self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
+ ]
+ self.assertEqual(res[self.OVERALL_FEEDBACK_KEY], expected_overall_feedback)
+
+ def test_drop_item_wrong_with_feedback(self):
+ self.block.weight = 2
+ item_id, zone_id = 0, self.ZONE_2
+ data = {"val": item_id, "zone": zone_id}
+ res = self.call_handler(self.DROP_ITEM_HANDLER, data)
+ item_feedback_message = self._make_item_feedback_message(item_id)
+ expected_feedback = [item_feedback_message] if item_feedback_message else []
+ # the item was dropped into wrong zone, but we have two items that were correctly left in the bank,
+ # so the raw score is 2 / 4.0.
+ expected_grade = self.block.weight * 2 / 4.0
+
+ self.assertEqual(res, {
+ "overall_feedback": [
+ self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
+ ],
+ "finished": False,
+ "correct": False,
+ "grade": expected_grade,
+ "feedback": expected_feedback
+ })
+
+ def test_drop_item_wrong_without_feedback(self):
+ self.block.weight = 2
+ item_id, zone_id = 2, self.ZONE_1
+ data = {"val": item_id, "zone": zone_id}
+ res = self.call_handler(self.DROP_ITEM_HANDLER, data)
+ item_feedback_message = self._make_item_feedback_message(item_id)
+ expected_feedback = [item_feedback_message] if item_feedback_message else []
+ # the item was dropped into wrong zone, but we have two items that were correctly left in the bank,
+ # so the raw score is 2 / 4.0.
+ expected_grade = self.block.weight * 2 / 4.0
+
+ self.assertEqual(res, {
+ "overall_feedback": [
+ self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
+ ],
+ "finished": False,
+ "correct": False,
+ "grade": expected_grade,
+ "feedback": expected_feedback
+ })
+
+ def test_drop_item_correct(self):
+ self.block.weight = 2
+ item_id, zone_id = 0, self.ZONE_1
+ data = {"val": item_id, "zone": zone_id}
+ res = self.call_handler(self.DROP_ITEM_HANDLER, data)
+ item_feedback_message = self._make_item_feedback_message(item_id, key="correct")
+ expected_feedback = [item_feedback_message] if item_feedback_message else []
+ # Item 0 is in correct zone, items 2 and 3 don't belong to any zone so it is correct to leave them in the bank.
+ # The only item that is not in correct position yet is item 1. The grade is therefore 3/4. The weight of the
+ # problem means that the displayed grade will be 1.5.
+ expected_grade = self.block.weight * 3 / 4.0
+
+ self.assertEqual(res, {
+ "overall_feedback": [
+ self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
+ ],
+ "finished": False,
+ "correct": True,
+ "grade": expected_grade,
+ "feedback": expected_feedback
+ })
+
+ @ddt.data(*[random.randint(1, 50) for _ in range(5)]) # pylint: disable=star-args
+ def test_grading(self, weight):
+ self.block.weight = weight
+
+ published_grades = []
+
+ def mock_publish(_, event, params):
+ if event == 'grade':
+ published_grades.append(params)
+ self.block.runtime.publish = mock_publish
+
+ # Before the user starts working on the problem, grade should equal zero.
+ self.assertEqual(0, self.block.raw_earned)
+
+ # Drag the first item into the correct zone.
+ self.call_handler(self.DROP_ITEM_HANDLER, {"val": 0, "zone": self.ZONE_1})
+
+ self.assertEqual(1, len(published_grades))
+ # The DnD test block has four items defined in the data fixtures:
+ # 1 item that belongs to ZONE_1, 1 item that belongs to ZONE_2, and two decoy items.
+ # After we drop the first item into ZONE_1, 3 out of 4 items are already in correct positions
+ # (1st item in ZONE_1 and two decoy items left in the bank). The grade at this point is therefore 3/4 * weight.
+ self.assertEqual(0.75, self.block.raw_earned)
+ self.assertEqual(0.75 * self.block.weight, self.block.weighted_grade())
+ self.assertEqual({'value': 0.75, 'max_value': 1, 'only_if_higher': None}, published_grades[-1])
+
+ # Drag the second item into correct zone.
+ self.call_handler(self.DROP_ITEM_HANDLER, {"val": 1, "zone": self.ZONE_2})
+
+ self.assertEqual(2, len(published_grades))
+ # All items are now placed in the right place, the user therefore gets the full grade.
+ self.assertEqual(1, self.block.raw_earned)
+ self.assertEqual({'value': 1, 'max_value': 1, 'only_if_higher': None}, published_grades[-1])
+
+ @ddt.data(True, False)
+ def test_grading_deprecation(self, grade_below_one):
+ self.assertFalse(self.block.has_submitted_answer())
+ if grade_below_one:
+ self.block.weight = 1.2
+ self.block.grade = 0.96
+ else:
+ self.block.weight = 50
+ self.block.grade = 40
+
+ published_grades = []
+ # for rescoring purposes has_submitted_answer should be true even if the block
+ # only has a deprecated weighted grade
+ self.assertTrue(self.block.has_submitted_answer())
+ self.assertIsNone(self.block._get_raw_earned_if_set()) # pylint: disable=protected-access
+
+ def mock_publish(_, event, params):
+ if event == 'grade':
+ published_grades.append(params)
+ self.block.runtime.publish = mock_publish
+
+ # Drag the first item into the correct zone.
+ self.call_handler(self.DROP_ITEM_HANDLER, {"val": 0, "zone": self.ZONE_1})
+
+ # The grade should be overridden even though self.grade will go down, since the block is at version 0
+ self.assertEqual(1, len(published_grades))
+ self.assertEqual(0.75, self.block.raw_earned)
+ self.assertEqual({'value': 0.75, 'max_value': 1, 'only_if_higher': None}, published_grades[-1])
+
+ # Drag the first item into the incorrect zone.
+ self.call_handler(self.DROP_ITEM_HANDLER, {"val": 0, "zone": self.ZONE_2})
+
+ # The grade should not be updated now that the block has a raw value in self.grade
+ self.assertEqual(1, len(published_grades))
+ self.assertEqual(0.75, self.block.raw_earned)
+
+ # Drag the first item back into the correct zone.
+ self.call_handler(self.DROP_ITEM_HANDLER, {"val": 0, "zone": self.ZONE_1})
+
+ # The grade should not be updated because user has already achieved a 0.75 raw score
+ self.assertEqual(1, len(published_grades))
+ self.assertEqual(0.75, self.block.raw_earned)
+
+ # Drag the second item into correct zone.
+ self.call_handler(self.DROP_ITEM_HANDLER, {"val": 1, "zone": self.ZONE_2})
+
+ self.assertEqual(2, len(published_grades))
+ # All items are now placed in the right place, the user therefore gets the full grade.
+ self.assertEqual(1, self.block.raw_earned)
+ self.assertEqual({'value': 1, 'max_value': 1, 'only_if_higher': None}, published_grades[-1])
+
+ def test_drop_item_final(self):
+ self.block.weight = 2
+ data = {"val": 0, "zone": self.ZONE_1}
+ self.call_handler(self.DROP_ITEM_HANDLER, data)
+
+ # Item 0 is in correct zone, items 2 and 3 don't belong to any zone so it is correct to leave them in the bank.
+ # The only item that is not in correct position yet is item 1. The raw grade is therefore 3/4.
+ expected_grade = self.block.weight * 3 / 4.0
+ expected_state = {
+ "items": {
+ "0": {"correct": True, "zone": self.ZONE_1}
+ },
+ "finished": False,
+ "attempts": 0,
+ "grade": expected_grade,
+ 'overall_feedback': [
+ self._make_feedback_message(self.INITIAL_FEEDBACK, FeedbackMessages.MessageClasses.INITIAL_FEEDBACK)
+ ],
+ }
+ self.assertEqual(expected_state, self.call_handler('student_view_user_state', method="GET"))
+
+ res = self.call_handler(self.DROP_ITEM_HANDLER, {"val": 1, "zone": self.ZONE_2})
+ # All four items are in correct position, so the final raw grade is 4/4.
+ expected_grade = self.block.weight * 4 / 4.0
+ self.assertEqual(res, {
+ "overall_feedback": [
+ self._make_feedback_message(self.FINAL_FEEDBACK, FeedbackMessages.MessageClasses.FINAL_FEEDBACK)
+ ],
+ "finished": True,
+ "correct": True,
+ "grade": expected_grade,
+ "feedback": [self._make_feedback_message(self.FEEDBACK[1]["correct"])]
+ })
+
+ expected_state = {
+ "items": {
+ "0": {"correct": True, "zone": self.ZONE_1},
+ "1": {"correct": True, "zone": self.ZONE_2}
+ },
+ "finished": True,
+ "attempts": 0,
+ "grade": expected_grade,
+ 'overall_feedback': [
+ self._make_feedback_message(self.FINAL_FEEDBACK, FeedbackMessages.MessageClasses.FINAL_FEEDBACK)
+ ],
+ }
+ self.assertEqual(expected_state, self.call_handler('student_view_user_state', method="GET"))
+
+ def test_do_attempt_not_available(self):
+ """
+ Tests that do_attempt handler returns 400 error for standard mode DnDv2
+ """
+ res = self.call_handler(self.DO_ATTEMPT_HANDLER, expect_json=False)
+
+ self.assertEqual(res.status_code, 400)
+
+ def test_show_answer_not_available(self):
+ """
+ Tests that show_answer handler returns 400 error for standard mode DnDv2
+ """
+ res = self.call_handler(self.SHOW_ANSWER_HANDLER, expect_json=False)
+
+ self.assertEqual(res.status_code, 400)
+
+
+class TestDragAndDropHtmlData(StandardModeFixture, unittest.TestCase):
+ FOLDER = "html"
+
+ ZONE_1 = "Zone 1 "
+ ZONE_2 = "Zone 2 "
+
+ FEEDBACK = {
+ 0: {"correct": "Yes 1 ", "incorrect": "No 1 "},
+ 1: {"correct": "Yes 2 ", "incorrect": "No 2 "},
+ 2: {"correct": "", "incorrect": ""}
+ }
+
+ INITIAL_FEEDBACK = "HTML Intro Feed"
+ FINAL_FEEDBACK = "Final feedback !"
+
+
+class TestDragAndDropPlainData(StandardModeFixture, unittest.TestCase):
+ FOLDER = "plain"
+
+ ZONE_1 = "zone-1"
+ ZONE_2 = "zone-2"
+
+ FEEDBACK = {
+ 0: {"correct": "Yes 1", "incorrect": "No 1"},
+ 1: {"correct": "Yes 2", "incorrect": "No 2"},
+ 2: {"correct": "", "incorrect": ""}
+ }
+
+ INITIAL_FEEDBACK = "This is the initial feedback."
+ FINAL_FEEDBACK = "This is the final feedback."
+
+
+class TestOldDataFormat(TestDragAndDropPlainData):
+ """
+ Make sure we can work with the slightly-older format for 'data' field values.
+ """
+ FOLDER = "old"
+
+ INITIAL_FEEDBACK = "Intro Feed"
+ FINAL_FEEDBACK = "Final Feed"
+
+ ZONE_1 = "Zone 1"
+ ZONE_2 = "Zone 2"