2026-03-09 11:18:22 +01:00
|
|
|
/**
|
|
|
|
|
* Hardcoded English labels for ExerciseQuestion Storybook demos.
|
|
|
|
|
*
|
|
|
|
|
* These keys must stay in sync with apps/dashboard/src/lib/features/course/components/exercise/question-labels.ts,
|
|
|
|
|
* which provides translated values via getExerciseQuestionLabels(). When adding or changing labels for a question type,
|
|
|
|
|
* update both files.
|
|
|
|
|
*/
|
|
|
|
|
export const QUESTION_LABELS = {
|
|
|
|
|
'common.option_prefix': 'Option',
|
|
|
|
|
'common.remove': 'Remove',
|
|
|
|
|
'common.add_option': 'Add option',
|
2026-03-22 18:42:23 +01:00
|
|
|
'common.correct_badge': 'Correct',
|
|
|
|
|
'common.incorrect_badge': 'Incorrect',
|
2026-03-09 11:18:22 +01:00
|
|
|
'common.not_set': 'Not set',
|
|
|
|
|
'navigation.previous': 'Previous',
|
|
|
|
|
'navigation.next': 'Next',
|
|
|
|
|
'navigation.finish': 'Finish',
|
|
|
|
|
'question.edit.title_label': 'Title',
|
|
|
|
|
'question.edit.title_placeholder': 'Question prompt',
|
|
|
|
|
'question.edit.description_label': 'Description (optional)',
|
|
|
|
|
'question.edit.description_placeholder': 'Add additional context for this question',
|
|
|
|
|
'question.edit.add_description': 'Add description',
|
|
|
|
|
'question.edit.remove_description': 'Remove description',
|
|
|
|
|
'question.edit.media_menu_sr': 'Question extras menu',
|
|
|
|
|
'question.edit.add_image': 'Add image',
|
|
|
|
|
'question.edit.add_video': 'Add video',
|
|
|
|
|
'question.edit.remove_image_tooltip': 'Remove image',
|
|
|
|
|
'question.edit.remove_image_sr': 'Remove image',
|
|
|
|
|
'question.edit.remove_video_tooltip': 'Remove video',
|
|
|
|
|
'question.edit.remove_video_sr': 'Remove video',
|
|
|
|
|
'question.edit.image_alt': 'Question context',
|
|
|
|
|
'question.edit.video_modal_title': 'Add YouTube video',
|
|
|
|
|
'question.edit.video_link_label': 'YouTube link',
|
|
|
|
|
'question.edit.video_link_placeholder': 'https://www.youtube.com/watch?v=',
|
|
|
|
|
'question.edit.video_add_button': 'Add video',
|
|
|
|
|
'question.edit.video_invalid_link': 'Please enter a valid YouTube link.',
|
|
|
|
|
'question.edit.upload_error_only_images': 'Only image files are supported.',
|
|
|
|
|
'question.edit.upload_error_skipped': 'Some files were skipped because they are not images.',
|
|
|
|
|
'question.edit.upload_error_failed': 'Failed to upload image. Try again.',
|
|
|
|
|
'radio.edit.helper': 'Select exactly one correct option.',
|
|
|
|
|
'radio.edit.correct_selected_tooltip': 'Correct answer selected',
|
|
|
|
|
'radio.edit.mark_correct_tooltip': 'Mark as correct answer',
|
|
|
|
|
'radio.edit.mark_correct_sr': 'Mark option as correct',
|
|
|
|
|
'checkbox.edit.helper': 'Mark one or more options as correct.',
|
|
|
|
|
'checkbox.edit.correct_selected_tooltip': 'Correct answer selected',
|
|
|
|
|
'checkbox.edit.toggle_correct_tooltip': 'Toggle correct answer',
|
|
|
|
|
'checkbox.edit.toggle_correct_sr': 'Toggle option as correct',
|
|
|
|
|
'true_false.true_label': 'True',
|
|
|
|
|
'true_false.false_label': 'False',
|
|
|
|
|
'true_false.edit.correct_answer_label': 'Correct answer',
|
|
|
|
|
'true_false.preview.correct_value_label': 'Correct value',
|
|
|
|
|
'short_answer.edit.instructions_placeholder': 'Optional instructions',
|
|
|
|
|
'short_answer.take.placeholder': 'Type your answer',
|
|
|
|
|
'short_answer.preview.helper': 'Free-text answer question.',
|
2026-03-22 18:42:23 +01:00
|
|
|
'short_answer.review.your_answer_label': 'Submitted:',
|
|
|
|
|
'short_answer.review.accepted_label': 'Accepted answers',
|
2026-03-09 11:18:22 +01:00
|
|
|
'numeric.edit.correct_value_label': 'Correct value',
|
|
|
|
|
'numeric.edit.correct_value_info': 'Expected numeric answer to mark as correct.',
|
|
|
|
|
'numeric.edit.tolerance_label': 'Tolerance',
|
|
|
|
|
'numeric.edit.tolerance_info': 'Allowed +/- range from the correct value.',
|
|
|
|
|
'numeric.edit.correct_value_placeholder': 'Correct value',
|
|
|
|
|
'numeric.edit.tolerance_placeholder': 'Tolerance',
|
|
|
|
|
'numeric.take.placeholder': 'Enter a number',
|
|
|
|
|
'numeric.preview.correct_value_label': 'Correct value',
|
|
|
|
|
'numeric.preview.tolerance_label': 'Tolerance',
|
2026-03-22 18:42:23 +01:00
|
|
|
'numeric.review.your_answer_label': 'Submitted:',
|
|
|
|
|
'numeric.review.in_range': 'Within tolerance',
|
|
|
|
|
'numeric.review.out_of_range': 'Outside tolerance',
|
2026-03-09 11:18:22 +01:00
|
|
|
'fill_blank.edit.accepted_answers_placeholder': 'Accepted answers (comma separated)',
|
|
|
|
|
'fill_blank.take.placeholder': 'Enter answers separated by commas',
|
|
|
|
|
'fill_blank.preview.accepted_answers_label': 'Accepted answers',
|
2026-03-22 18:42:23 +01:00
|
|
|
'fill_blank.review.your_answer_label': 'Submitted:',
|
2026-03-09 11:18:22 +01:00
|
|
|
'file_upload.edit.accepted_types_placeholder': 'Select accepted file formats',
|
|
|
|
|
'file_upload.edit.max_size_placeholder': 'Max size (MB)',
|
|
|
|
|
'file_upload.take.selected_file_label': 'Selected file',
|
|
|
|
|
'file_upload.take.upload_button': 'Upload',
|
|
|
|
|
'file_upload.take.upload_progress': 'Uploading...',
|
|
|
|
|
'file_upload.take.upload_error': 'Upload failed',
|
|
|
|
|
'file_upload.take.view': 'View',
|
|
|
|
|
'file_upload.take.download': 'Download',
|
|
|
|
|
'file_upload.preview.accepted_types_label': 'Accepted types',
|
|
|
|
|
'file_upload.preview.max_size_label': 'Max size (MB)',
|
|
|
|
|
'link.edit.instructions_placeholder': 'Optional instructions for learners',
|
|
|
|
|
'link.edit.helper': 'Learners can submit one or more valid URLs (http/https).',
|
|
|
|
|
'link.take.helper': 'Add one or more links. Only valid http/https URLs are accepted.',
|
|
|
|
|
'link.take.placeholder': 'https://example.com/resource-{index}',
|
|
|
|
|
'link.take.remove_tooltip': 'Remove link',
|
|
|
|
|
'link.take.remove_sr': 'Remove link',
|
|
|
|
|
'link.take.invalid_url_error': 'Please enter a valid URL (http/https).',
|
|
|
|
|
'link.take.add_button': 'Add link',
|
|
|
|
|
'link.preview.empty': 'No links submitted.',
|
|
|
|
|
'link.preview.item_label': 'Link {index}',
|
|
|
|
|
'matching.edit.helper': 'Configure pairs in question settings via host app controls.',
|
|
|
|
|
'matching.take.placeholder': 'Provide matching pairs as JSON',
|
|
|
|
|
'matching.preview.helper': 'Matching pairs preview is provided by host app settings.',
|
|
|
|
|
'ordering.fallback_step_prefix': 'Step',
|
|
|
|
|
'ordering.edit.helper': 'Drag items to define the correct order.',
|
|
|
|
|
'ordering.edit.add_step': 'Add step',
|
|
|
|
|
'ordering.edit.empty': 'Add steps, then drag to set the expected order.',
|
|
|
|
|
'ordering.edit.step_placeholder': 'Step {index}',
|
|
|
|
|
'ordering.edit.remove_step_tooltip': 'Remove step',
|
|
|
|
|
'ordering.take.helper': 'Drag and drop to arrange the items in the correct order.',
|
|
|
|
|
'ordering.take.empty': 'No ordering items are configured for this question yet.',
|
|
|
|
|
'ordering.preview.submitted_label': 'Submitted order',
|
|
|
|
|
'ordering.preview.expected_label': 'Expected order',
|
|
|
|
|
'ordering.preview.matches': 'Submitted order matches expected order.',
|
|
|
|
|
'ordering.preview.differs': 'Submitted order differs from expected order.',
|
|
|
|
|
'hotspot.edit.helper': 'Configure hotspot image and zones in question settings via host app controls.',
|
|
|
|
|
'hotspot.take.placeholder': 'Provide hotspot coordinates as JSON',
|
|
|
|
|
'hotspot.preview.helper': 'Hotspot preview is provided by host app image and hotspot settings.',
|
|
|
|
|
'textarea.edit.placeholder': 'Learners will answer with long-form text',
|
|
|
|
|
'textarea.take.placeholder': 'Write your answer',
|
|
|
|
|
'submission.common.no_answer': 'No answer',
|
|
|
|
|
'submission.common.other': 'Other',
|
|
|
|
|
'submission.chart.responses': 'Responses',
|
|
|
|
|
'submission.chart.no_data': 'No responses yet',
|
|
|
|
|
'submission.list.responses': 'Responses',
|
|
|
|
|
'submission.list.no_responses': 'No responses yet'
|
|
|
|
|
} as const;
|