From 6f51a4895bcdac4ec127be518ced9c46306a00ca Mon Sep 17 00:00:00 2001 From: adi-herwana-nus Date: Sun, 21 Dec 2025 02:06:54 +0800 Subject: [PATCH 1/4] feat(translations): move all CSV translations to dedicated file --- .../submission/csv_download_service.rb | 24 +++---- .../submission/statistics_download_service.rb | 28 ++++---- .../experience_points_download_service.rb | 10 +-- ...essments_score_summary_download_service.rb | 8 ++- .../course/survey/survey_download_service.rb | 12 ++-- .../assessment/submission/submissions.yml | 28 -------- .../en/course/experience_points_records.yml | 9 --- config/locales/en/course/statistics.yml | 7 -- config/locales/en/course/survey/surveys.yml | 10 --- config/locales/en/csv.yml | 64 +++++++++++++++++++ .../assessment/submission/submissions.yml | 28 -------- .../ko/course/experience_points_records.yml | 9 --- config/locales/ko/course/statistics.yml | 7 -- config/locales/ko/course/survey/surveys.yml | 10 --- config/locales/ko/csv.yml | 64 +++++++++++++++++++ .../assessment/submission/submissions.yml | 28 -------- .../zh/course/experience_points_records.yml | 9 --- config/locales/zh/course/statistics.yml | 7 -- config/locales/zh/course/survey/surveys.yml | 10 --- config/locales/zh/csv.yml | 64 +++++++++++++++++++ 20 files changed, 235 insertions(+), 201 deletions(-) delete mode 100644 config/locales/en/course/experience_points_records.yml delete mode 100644 config/locales/en/course/statistics.yml delete mode 100644 config/locales/en/course/survey/surveys.yml create mode 100644 config/locales/en/csv.yml delete mode 100644 config/locales/ko/course/experience_points_records.yml delete mode 100644 config/locales/ko/course/statistics.yml delete mode 100644 config/locales/ko/course/survey/surveys.yml create mode 100644 config/locales/ko/csv.yml delete mode 100644 config/locales/zh/course/experience_points_records.yml delete mode 100644 config/locales/zh/course/statistics.yml delete mode 100644 config/locales/zh/course/survey/surveys.yml create mode 100644 config/locales/zh/csv.yml diff --git a/app/services/course/assessment/submission/csv_download_service.rb b/app/services/course/assessment/submission/csv_download_service.rb index aed5ace04f3..406b40725c6 100644 --- a/app/services/course/assessment/submission/csv_download_service.rb +++ b/app/services/course/assessment/submission/csv_download_service.rb @@ -62,8 +62,8 @@ def cleanup_entries def submissions_csv_header(csv) # Question Title - question_title = [I18n.t('course.assessment.submission.submissions.csv_download_service.note'), '', '', '', - I18n.t('course.assessment.submission.submissions.csv_download_service.question_title'), + question_title = [I18n.t('csv.assessment_submissions.note'), '', '', '', + I18n.t('csv.assessment_submissions.headers.question_title'), *@question_assessments.map(&:display_title)] # Remove note if there is no N/A answer question_title[0] = '' if @questions_downloadable.values.all? @@ -71,15 +71,15 @@ def submissions_csv_header(csv) # Question Type csv << ['', '', '', '', - I18n.t('course.assessment.submission.submissions.csv_download_service.question_type'), + I18n.t('csv.assessment_submissions.headers.question_type'), *@question_assessments.map { |x| x.question.question_type_readable }] # Column Header - csv << [I18n.t('course.assessment.submission.submissions.csv_download_service.name'), - I18n.t('course.assessment.submission.submissions.csv_download_service.email'), - I18n.t('course.assessment.submission.submissions.csv_download_service.role'), - I18n.t('course.assessment.submission.submissions.csv_download_service.user_type'), - I18n.t('course.assessment.submission.submissions.csv_download_service.status')] + csv << [I18n.t('csv.assessment_submissions.headers.name'), + I18n.t('csv.assessment_submissions.headers.email'), + I18n.t('csv.assessment_submissions.headers.role'), + I18n.t('csv.assessment_submissions.headers.user_type'), + I18n.t('csv.assessment_submissions.headers.status')] end def submissions_csv_row(csv, submission, course_user) # rubocop:disable Metrics/AbcSize @@ -87,9 +87,9 @@ def submissions_csv_row(csv, submission, course_user) # rubocop:disable Metrics/ course_user.user.email, course_user.role, if course_user.phantom? - I18n.t('course.assessment.submission.submissions.csv_download_service.phantom') + I18n.t('csv.assessment_submissions.values.phantom') else - I18n.t('course.assessment.submission.submissions.csv_download_service.normal') + I18n.t('csv.assessment_submissions.values.normal') end] if submission @@ -100,7 +100,7 @@ def submissions_csv_row(csv, submission, course_user) # rubocop:disable Metrics/ end row_array.concat([submission.workflow_state, *answer_row]) else - row_array.append(I18n.t('course.assessment.submission.submissions.csv_download_service.unstarted')) + row_array.append(I18n.t('csv.assessment_submissions.values.unstarted')) end csv << row_array @@ -108,7 +108,7 @@ def submissions_csv_row(csv, submission, course_user) # rubocop:disable Metrics/ def generate_answer_row(question, answer) return 'N/A' unless @questions_downloadable[question.id] - return I18n.t('course.assessment.submission.submissions.csv_download_service.no_answer') if answer.nil? + return I18n.t('csv.assessment_submissions.values.no_answer') if answer.nil? answer.specific.csv_download end diff --git a/app/services/course/assessment/submission/statistics_download_service.rb b/app/services/course/assessment/submission/statistics_download_service.rb index a3c0a62e522..2cff8ca390c 100644 --- a/app/services/course/assessment/submission/statistics_download_service.rb +++ b/app/services/course/assessment/submission/statistics_download_service.rb @@ -48,19 +48,19 @@ def cleanup_entries end def download_statistics_header(csv) - csv << [I18n.t('course.assessment.submission.submissions.statistics_download_service.name'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.phantom'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.status'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.start_date_time'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.submitted_date_time'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.time_taken'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.graded_date_time'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.grading_time'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.grader'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.publisher'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.exp_points'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.grade'), - I18n.t('course.assessment.submission.submissions.statistics_download_service.max_grade'), + csv << [I18n.t('csv.assessment_statistics.headers.name'), + I18n.t('csv.assessment_statistics.headers.phantom'), + I18n.t('csv.assessment_statistics.headers.status'), + I18n.t('csv.assessment_statistics.headers.start_date_time'), + I18n.t('csv.assessment_statistics.headers.submitted_date_time'), + I18n.t('csv.assessment_statistics.headers.time_taken'), + I18n.t('csv.assessment_statistics.headers.graded_date_time'), + I18n.t('csv.assessment_statistics.headers.grading_time'), + I18n.t('csv.assessment_statistics.headers.grader'), + I18n.t('csv.assessment_statistics.headers.publisher'), + I18n.t('csv.assessment_statistics.headers.exp_points'), + I18n.t('csv.assessment_statistics.headers.grade'), + I18n.t('csv.assessment_statistics.headers.max_grade'), *csv_header_question_grade] end @@ -90,7 +90,7 @@ def download_statistics(csv, submission, assessment) end def csv_empty - I18n.t('course.assessment.submission.submissions.statistics_download_service.csv_empty') + I18n.t('csv.assessment_statistics.values.empty') end def csv_time_taken(submission) diff --git a/app/services/course/experience_points_download_service.rb b/app/services/course/experience_points_download_service.rb index 74f6e269e93..12aac647e46 100644 --- a/app/services/course/experience_points_download_service.rb +++ b/app/services/course/experience_points_download_service.rb @@ -50,11 +50,11 @@ def load_exp_record_updater_service(exp_points_records) end def download_exp_points_header(csv) - csv << [I18n.t('course.experience_points_records.download.updated_at'), - I18n.t('course.experience_points_records.download.name'), - I18n.t('course.experience_points_records.download.updater'), - I18n.t('course.experience_points_records.download.reason'), - I18n.t('course.experience_points_records.download.exp_points')] + csv << [I18n.t('csv.experience_points.headers.updated_at'), + I18n.t('csv.experience_points.headers.name'), + I18n.t('csv.experience_points.headers.updater'), + I18n.t('csv.experience_points.headers.reason'), + I18n.t('csv.experience_points.headers.exp_points')] end def download_exp_points(csv, record) diff --git a/app/services/course/statistics/assessments_score_summary_download_service.rb b/app/services/course/statistics/assessments_score_summary_download_service.rb index a15db180413..c42f4812517 100644 --- a/app/services/course/statistics/assessments_score_summary_download_service.rb +++ b/app/services/course/statistics/assessments_score_summary_download_service.rb @@ -63,8 +63,12 @@ def assessments def download_score_summary(csv) # header - csv << [I18n.t('course.statistics.name'), I18n.t('course.statistics.email'), I18n.t('course.statistics.type'), - *@assessments.map(&:title)] + csv << [ + I18n.t('csv.score_summary.headers.name'), + I18n.t('csv.score_summary.headers.email'), + I18n.t('csv.score_summary.headers.type'), + *@assessments.map(&:title) + ] # content @all_students.each do |student| diff --git a/app/services/course/survey/survey_download_service.rb b/app/services/course/survey/survey_download_service.rb index a3f8c83d6b9..ea9bb005623 100644 --- a/app/services/course/survey/survey_download_service.rb +++ b/app/services/course/survey/survey_download_service.rb @@ -53,11 +53,11 @@ def generate_csv def generate_header(questions) [ - I18n.t('course.surveys.survey_download_service.created_at'), - I18n.t('course.surveys.survey_download_service.updated_at'), - I18n.t('course.surveys.survey_download_service.course_user_id'), - I18n.t('course.surveys.survey_download_service.name'), - I18n.t('course.surveys.survey_download_service.role') + I18n.t('csv.survey.headers.created_at'), + I18n.t('csv.survey.headers.updated_at'), + I18n.t('csv.survey.headers.course_user_id'), + I18n.t('csv.survey.headers.name'), + I18n.t('csv.survey.headers.role') ] + questions.map { |q| format_rich_text_for_csv(q.description) } end @@ -88,7 +88,7 @@ def generate_value(answer) return generate_mcq_mrq_value(answer) if question.multiple_choice? || question.multiple_response? - I18n.t('course.surveys.survey_download_service.unknown_question_type') + I18n.t('csv.survey.values.unknown_question_type') end def generate_mcq_mrq_value(answer) diff --git a/config/locales/en/course/assessment/submission/submissions.yml b/config/locales/en/course/assessment/submission/submissions.yml index 880b2468509..5c0280580b6 100644 --- a/config/locales/en/course/assessment/submission/submissions.yml +++ b/config/locales/en/course/assessment/submission/submissions.yml @@ -5,32 +5,4 @@ en: submissions: download_statistics: no_submission_statistics: 'No submission fulfilled your requirements for downloading' - statistics_download_service: - name: 'Name' - phantom: 'Phantom User' - status: 'Status' - grade: 'Grade' - max_grade: 'Maximum Grade' - exp_points: 'Experience Points' - start_date_time: 'Start Date/Time' - submitted_date_time: 'Submitted Date/Time' - time_taken: 'Time Taken' - graded_date_time: 'Graded Date/Time' - grading_time: 'Grading Time' - grader: 'Grader(s)' - publisher: 'Publisher' - csv_empty: '-' - csv_download_service: - note: 'N/A: The answer format cannot fit in a single cell.' - name: 'Name' - email: 'Email' - role: 'Role' - user_type: 'User Type' - status: 'Status' - question_title: 'Question Title' - question_type: 'Question Type' - normal: 'Normal' - phantom: 'Phantom' - unstarted: 'Unstarted' - no_answer: 'No answer' diff --git a/config/locales/en/course/experience_points_records.yml b/config/locales/en/course/experience_points_records.yml deleted file mode 100644 index 953ee69db25..00000000000 --- a/config/locales/en/course/experience_points_records.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - course: - experience_points_records: - download: - name: 'Name' - updated_at: 'Updated At' - updater: 'Updater' - reason: 'Reason' - exp_points: 'EXP Awarded' diff --git a/config/locales/en/course/statistics.yml b/config/locales/en/course/statistics.yml deleted file mode 100644 index d272dd56479..00000000000 --- a/config/locales/en/course/statistics.yml +++ /dev/null @@ -1,7 +0,0 @@ -en: - course: - statistics: - name: 'Name' - type: 'Student Type' - email: 'Email' - header: 'Statistics' diff --git a/config/locales/en/course/survey/surveys.yml b/config/locales/en/course/survey/surveys.yml deleted file mode 100644 index 2f8016a621c..00000000000 --- a/config/locales/en/course/survey/surveys.yml +++ /dev/null @@ -1,10 +0,0 @@ -en: - course: - surveys: - survey_download_service: - created_at: 'Create Timestamp' - updated_at: 'Last Update Timestamp' - course_user_id: 'Course User ID' - name: 'Name' - role: 'Role' - unknown_question_type: 'UNKNOWN QUESTION TYPE' diff --git a/config/locales/en/csv.yml b/config/locales/en/csv.yml new file mode 100644 index 00000000000..020efec3c82 --- /dev/null +++ b/config/locales/en/csv.yml @@ -0,0 +1,64 @@ +en: + csv: + # Assessment submissions - detailed answers export + assessment_submissions: + headers: + name: 'Name' + email: 'Email' + role: 'Role' + user_type: 'User Type' + status: 'Status' + question_title: 'Question Title' + question_type: 'Question Type' + values: + normal: 'Normal' + phantom: 'Phantom' + unstarted: 'Unstarted' + no_answer: 'No answer' + note: 'N/A: The answer format cannot fit in a single cell.' + + # Assessment statistics - summary export + assessment_statistics: + headers: + name: 'Name' + phantom: 'Phantom User' + status: 'Status' + grade: 'Grade' + max_grade: 'Maximum Grade' + exp_points: 'Experience Points' + start_date_time: 'Start Date/Time' + submitted_date_time: 'Submitted Date/Time' + time_taken: 'Time Taken' + graded_date_time: 'Graded Date/Time' + grading_time: 'Grading Time' + grader: 'Grader(s)' + publisher: 'Publisher' + values: + empty: '-' + + # Experience points records export + experience_points: + headers: + name: 'Name' + updated_at: 'Updated At' + updater: 'Updater' + reason: 'Reason' + exp_points: 'EXP Awarded' + + # Survey responses export + survey: + headers: + created_at: 'Create Timestamp' + updated_at: 'Last Update Timestamp' + course_user_id: 'Course User ID' + name: 'Name' + role: 'Role' + values: + unknown_question_type: 'UNKNOWN QUESTION TYPE' + + # Assessment score summary statistics export + score_summary: + headers: + name: 'Name' + type: 'Student Type' + email: 'Email' diff --git a/config/locales/ko/course/assessment/submission/submissions.yml b/config/locales/ko/course/assessment/submission/submissions.yml index 3efb9e7809b..591e4b94fcc 100644 --- a/config/locales/ko/course/assessment/submission/submissions.yml +++ b/config/locales/ko/course/assessment/submission/submissions.yml @@ -5,31 +5,3 @@ ko: submissions: download_statistics: no_submission_statistics: '다운로드 요구 사항을 충족하는 제출물이 없습니다' - statistics_download_service: - name: '이름' - phantom: '팬텀 사용자' - status: '상태' - grade: '점수' - max_grade: '최고 점수' - exp_points: '경험치' - start_date_time: '시작 날짜/시간' - submitted_date_time: '제출 날짜/시간' - time_taken: '소요 시간' - graded_date_time: '채점 날짜/시간' - grading_time: '채점 시간' - grader: '채점자' - publisher: '발행자' - csv_empty: '-' - csv_download_service: - note: 'N/A: 답변 형식을 하나의 셀에 맞출 수 없습니다.' - name: '이름' - email: '이메일' - role: '역할' - user_type: '사용자 유형' - status: '상태' - question_title: '질문 제목' - question_type: '질문 유형' - normal: '일반' - phantom: '팬텀' - unstarted: '시작되지 않음' - no_answer: '답변 없음' diff --git a/config/locales/ko/course/experience_points_records.yml b/config/locales/ko/course/experience_points_records.yml deleted file mode 100644 index 1d51422bab3..00000000000 --- a/config/locales/ko/course/experience_points_records.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - course: - experience_points_records: - download: - name: '이름' - updated_at: '업데이트 날짜' - updater: '업데이트한 사람' - reason: '이유' - exp_points: '경험치 획득' diff --git a/config/locales/ko/course/statistics.yml b/config/locales/ko/course/statistics.yml deleted file mode 100644 index 15bd20b2412..00000000000 --- a/config/locales/ko/course/statistics.yml +++ /dev/null @@ -1,7 +0,0 @@ -ko: - course: - statistics: - name: '이름' - type: '학생 유형' - email: '이메일' - header: '통계' diff --git a/config/locales/ko/course/survey/surveys.yml b/config/locales/ko/course/survey/surveys.yml deleted file mode 100644 index 59631e77696..00000000000 --- a/config/locales/ko/course/survey/surveys.yml +++ /dev/null @@ -1,10 +0,0 @@ -ko: - course: - surveys: - survey_download_service: - created_at: '타임스탬프 생성' - updated_at: '마지막으로 업데이트된 타임스탬프' - course_user_id: '코스 사용자 ID' - name: '이름' - role: '역할' - unknown_question_type: '알 수 없는 질문 유형' diff --git a/config/locales/ko/csv.yml b/config/locales/ko/csv.yml new file mode 100644 index 00000000000..6a1a238665c --- /dev/null +++ b/config/locales/ko/csv.yml @@ -0,0 +1,64 @@ +ko: + csv: + # Assessment submissions - detailed answers export + assessment_submissions: + headers: + name: '이름' + email: '이메일' + role: '역할' + user_type: '사용자 유형' + status: '상태' + question_title: '질문 제목' + question_type: '질문 유형' + values: + normal: '일반' + phantom: '팬텀' + unstarted: '시작되지 않음' + no_answer: '답변 없음' + note: 'N/A: 답변 형식을 하나의 셀에 맞출 수 없습니다.' + + # Assessment statistics - summary export + assessment_statistics: + headers: + name: '이름' + phantom: '팬텀 사용자' + status: '상태' + grade: '점수' + max_grade: '최고 점수' + exp_points: '경험치' + start_date_time: '시작 날짜/시간' + submitted_date_time: '제출 날짜/시간' + time_taken: '소요 시간' + graded_date_time: '채점 날짜/시간' + grading_time: '채점 시간' + grader: '채점자' + publisher: '발행자' + values: + empty: '-' + + # Experience points records export + experience_points: + headers: + name: '이름' + updated_at: '업데이트 날짜' + updater: '업데이트한 사람' + reason: '이유' + exp_points: '경험치 획득' + + # Survey responses export + survey: + headers: + created_at: '타임스탬프 생성' + updated_at: '마지막으로 업데이트된 타임스탬프' + course_user_id: '코스 사용자 ID' + name: '이름' + role: '역할' + values: + unknown_question_type: '알 수 없는 질문 유형' + + # Assessment score summary statistics export + score_summary: + headers: + name: '이름' + type: '학생 유형' + email: '이메일' diff --git a/config/locales/zh/course/assessment/submission/submissions.yml b/config/locales/zh/course/assessment/submission/submissions.yml index d47de422bf7..70f8c810e68 100644 --- a/config/locales/zh/course/assessment/submission/submissions.yml +++ b/config/locales/zh/course/assessment/submission/submissions.yml @@ -5,32 +5,4 @@ zh: submissions: download_statistics: no_submission_statistics: '没有提交满足您的下载要求' - statistics_download_service: - name: '姓名' - phantom: '虚拟用户' - status: '状态' - grade: '评分' - max_grade: '最高分' - exp_points: '经验值' - start_date_time: '开始日期/时间' - submitted_date_time: '提交日期/时间' - time_taken: '耗时' - graded_date_time: '评分日期/时间' - grading_time: '评分耗时' - grader: '评分人' - publisher: '发布人' - csv_empty: '-' - csv_download_service: - note: 'N/A: 该答案的格式不能放在一个单元格中。' - name: '姓名' - email: 'Email' - role: '身份变更' - user_type: '用户类型' - status: '状态' - question_title: '问题标题' - question_type: '问题类型' - normal: '常规' - phantom: '虚拟' - unstarted: '未开始' - no_answer: '无答案' diff --git a/config/locales/zh/course/experience_points_records.yml b/config/locales/zh/course/experience_points_records.yml deleted file mode 100644 index a14fa1ad5c1..00000000000 --- a/config/locales/zh/course/experience_points_records.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - course: - experience_points_records: - download: - name: '姓名' - updated_at: '更新于' - updater: '更新者' - reason: '理由' - exp_points: '经验值奖励已获取' diff --git a/config/locales/zh/course/statistics.yml b/config/locales/zh/course/statistics.yml deleted file mode 100644 index 2e6650691e1..00000000000 --- a/config/locales/zh/course/statistics.yml +++ /dev/null @@ -1,7 +0,0 @@ -zh: - course: - statistics: - name: '用户名' - type: '学生类型' - email: 'Email' - header: '数据' diff --git a/config/locales/zh/course/survey/surveys.yml b/config/locales/zh/course/survey/surveys.yml deleted file mode 100644 index d1901ae6afa..00000000000 --- a/config/locales/zh/course/survey/surveys.yml +++ /dev/null @@ -1,10 +0,0 @@ -zh: - course: - surveys: - survey_download_service: - created_at: '创建时间戳' - updated_at: '上一次更新时间戳' - course_user_id: '课程用户ID' - name: '姓名' - role: '身份变更' - unknown_question_type: '未知问题类型' diff --git a/config/locales/zh/csv.yml b/config/locales/zh/csv.yml new file mode 100644 index 00000000000..ac239e862fe --- /dev/null +++ b/config/locales/zh/csv.yml @@ -0,0 +1,64 @@ +zh: + csv: + # Assessment submissions - detailed answers export + assessment_submissions: + headers: + name: '姓名' + email: 'Email' + role: '身份变更' + user_type: '用户类型' + status: '状态' + question_title: '问题标题' + question_type: '问题类型' + values: + normal: '常规' + phantom: '虚拟' + unstarted: '未开始' + no_answer: '无答案' + note: 'N/A: 该答案的格式不能放在一个单元格中。' + + # Assessment statistics - summary export + assessment_statistics: + headers: + name: '姓名' + phantom: '虚拟用户' + status: '状态' + grade: '评分' + max_grade: '最高分' + exp_points: '经验值' + start_date_time: '开始日期/时间' + submitted_date_time: '提交日期/时间' + time_taken: '耗时' + graded_date_time: '评分日期/时间' + grading_time: '评分耗时' + grader: '评分人' + publisher: '发布人' + values: + empty: '-' + + # Experience points records export + experience_points: + headers: + name: '姓名' + updated_at: '更新于' + updater: '更新者' + reason: '理由' + exp_points: '经验值奖励已获取' + + # Survey responses export + survey: + headers: + created_at: '创建时间戳' + updated_at: '上一次更新时间戳' + course_user_id: '课程用户ID' + name: '姓名' + role: '身份变更' + values: + unknown_question_type: '未知问题类型' + + # Assessment score summary statistics export + score_summary: + headers: + name: '用户名' + type: '学生类型' + email: 'Email' From 24215edbdd44c86e5e5da6b4d3f3b8c7424ac109 Mon Sep 17 00:00:00 2001 From: adi-herwana-nus Date: Sun, 21 Dec 2025 03:14:34 +0800 Subject: [PATCH 2/4] feat(translations): consolidate mailer translations --- app/helpers/application_mailer_helper.rb | 2 +- .../mailer/course_duplicated_email.html.slim | 2 +- .../mailer/course_duplicated_email.text.erb | 2 +- .../course/mailer/user_added_email.html.slim | 2 +- .../course/mailer/user_added_email.text.erb | 2 +- .../user_enrol_requested_email.html.slim | 2 +- .../user_enrol_requested_email.text.erb | 2 +- .../mailer/user_invitation_email.html.slim | 4 +- .../mailer/user_invitation_email.text.erb | 4 +- .../mailer/user_rejected_email.html.slim | 2 +- .../mailer/user_rejected_email.text.erb | 2 +- .../mailer/user_added_email.html.slim | 2 +- .../instance/mailer/user_added_email.text.erb | 2 +- .../mailer/user_invitation_email.html.slim | 4 +- .../mailer/user_invitation_email.text.erb | 4 +- .../new_role_request.html.slim | 2 +- .../new_role_request.text.erb | 2 +- .../role_request_approved.html.slim | 2 +- .../role_request_approved.text.erb | 2 +- .../_manage_email_subscription.html.slim | 2 +- .../_manage_email_subscription.text.erb | 2 +- app/views/layouts/mailer.html.slim | 2 +- app/views/layouts/mailer.text.erb | 2 +- .../user_notifications/email.html.slim | 2 +- .../user_notifications/email.html.slim | 2 +- .../user_notifications/email.html.slim | 2 +- .../user_notifications/email.html.slim | 4 +- config/locales/en/common.yml | 3 - config/locales/en/course/enrol_requests.yml | 5 - .../assessment_closing_reminder_email.yml | 9 - .../assessment_closing_summary_email.yml | 13 - .../mailer/course_duplicate_failed_email.yml | 8 - .../course/mailer/course_duplicated_email.yml | 10 - .../course_user_deletion_failed_email.yml | 8 - .../course/mailer/submission_graded_email.yml | 7 - .../mailer/survey_closing_reminder_email.yml | 7 - .../survey_closing_summary_reminder.yml | 9 - .../en/course/mailer/user_added_email.yml | 9 - .../mailer/user_enrol_requested_email.yml | 11 - .../course/mailer/user_invitation_email.yml | 17 -- .../en/course/mailer/user_rejected_email.yml | 8 - .../en/instance/mailer/user_added_email.yml | 9 - .../instance/mailer/user_invitation_email.yml | 13 - .../en/instance_user_role_request_mailer.yml | 40 --- config/locales/en/layout.yml | 7 - config/locales/en/mailers.yml | 246 ++++++++++++++++++ config/locales/en/notifiers.yml | 5 - .../new/course_notifications/email.yml | 11 - .../annotated/user_notifications/email.yml | 15 -- .../replied/user_notifications/email.yml | 15 -- .../opening/course_notifications/email.yml | 10 - .../submitted/user_notifications/email.yml | 12 - .../course_notifications/email.yml | 16 -- .../replied/user_notifications/email.yml | 16 -- .../created/user_notifications/email.yml | 15 -- .../course/video_notifier/video_notifier.yml | 16 -- config/locales/ko/common.yml | 3 - config/locales/ko/course/enrol_requests.yml | 5 - .../assessment_closing_reminder_email.yml | 9 - .../assessment_closing_summary_email.yml | 13 - .../mailer/course_duplicate_failed_email.yml | 7 - .../course/mailer/course_duplicated_email.yml | 10 - .../course_user_deletion_failed_email.yml | 8 - .../course/mailer/submission_graded_email.yml | 7 - .../mailer/survey_closing_reminder_email.yml | 7 - .../survey_closing_summary_reminder.yml | 9 - .../ko/course/mailer/user_added_email.yml | 9 - .../mailer/user_enrol_requested_email.yml | 11 - .../course/mailer/user_invitation_email.yml | 17 -- .../ko/course/mailer/user_rejected_email.yml | 7 - .../ko/instance/mailer/user_added_email.yml | 9 - .../instance/mailer/user_invitation_email.yml | 13 - config/locales/ko/layout.yml | 7 - config/locales/ko/mailers.yml | 243 +++++++++++++++++ config/locales/ko/notifiers.yml | 5 - .../new/course_notifications/email.yml | 11 - .../annotated/user_notifications/email.yml | 15 -- .../replied/user_notifications/email.yml | 15 -- .../opening/course_notifications/email.yml | 10 - .../submitted/user_notifications/email.yml | 12 - .../course_notifications/email.yml | 16 -- .../replied/user_notifications/email.yml | 16 -- .../created/user_notifications/email.yml | 15 -- .../course/video_notifier/video_notifier.yml | 16 -- config/locales/zh/common.yml | 3 - config/locales/zh/course/enrol_requests.yml | 5 - .../assessment_closing_reminder_email.yml | 9 - .../assessment_closing_summary_email.yml | 13 - .../mailer/course_duplicate_failed_email.yml | 8 - .../course/mailer/course_duplicated_email.yml | 11 - .../course_user_deletion_failed_email.yml | 8 - .../course/mailer/submission_graded_email.yml | 7 - .../mailer/survey_closing_reminder_email.yml | 7 - .../survey_closing_summary_reminder.yml | 10 - .../zh/course/mailer/user_added_email.yml | 10 - .../mailer/user_enrol_requested_email.yml | 11 - .../course/mailer/user_invitation_email.yml | 21 -- .../zh/course/mailer/user_rejected_email.yml | 8 - .../zh/instance/mailer/user_added_email.yml | 10 - .../instance/mailer/user_invitation_email.yml | 13 - config/locales/zh/layout.yml | 7 - config/locales/zh/mailers.yml | 246 ++++++++++++++++++ config/locales/zh/notifiers.yml | 5 - .../new/course_notifications/email.yml | 11 - .../annotated/user_notifications/email.yml | 16 -- .../replied/user_notifications/email.yml | 17 -- .../opening/course_notifications/email.yml | 10 - .../submitted/user_notifications/email.yml | 12 - .../course_notifications/email.yml | 16 -- .../replied/user_notifications/email.yml | 16 -- .../created/user_notifications/email.yml | 15 -- .../course/video_notifier/video_notifier.yml | 16 -- .../user/emails_controller_spec.rb | 2 +- spec/mailers/activity_mailer_spec.rb | 6 +- 114 files changed, 771 insertions(+), 937 deletions(-) delete mode 100644 config/locales/en/course/enrol_requests.yml delete mode 100644 config/locales/en/course/mailer/assessment_closing_reminder_email.yml delete mode 100644 config/locales/en/course/mailer/assessment_closing_summary_email.yml delete mode 100644 config/locales/en/course/mailer/course_duplicate_failed_email.yml delete mode 100644 config/locales/en/course/mailer/course_duplicated_email.yml delete mode 100644 config/locales/en/course/mailer/course_user_deletion_failed_email.yml delete mode 100644 config/locales/en/course/mailer/submission_graded_email.yml delete mode 100644 config/locales/en/course/mailer/survey_closing_reminder_email.yml delete mode 100644 config/locales/en/course/mailer/survey_closing_summary_reminder.yml delete mode 100644 config/locales/en/course/mailer/user_added_email.yml delete mode 100644 config/locales/en/course/mailer/user_enrol_requested_email.yml delete mode 100644 config/locales/en/course/mailer/user_invitation_email.yml delete mode 100644 config/locales/en/course/mailer/user_rejected_email.yml delete mode 100644 config/locales/en/instance/mailer/user_added_email.yml delete mode 100644 config/locales/en/instance/mailer/user_invitation_email.yml delete mode 100644 config/locales/en/instance_user_role_request_mailer.yml create mode 100644 config/locales/en/mailers.yml delete mode 100644 config/locales/en/notifiers.yml delete mode 100644 config/locales/en/notifiers/course/announcement_notifier/new/course_notifications/email.yml delete mode 100644 config/locales/en/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml delete mode 100644 config/locales/en/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml delete mode 100644 config/locales/en/notifiers/course/assessment_notifier/opening/course_notifications/email.yml delete mode 100644 config/locales/en/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml delete mode 100644 config/locales/en/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml delete mode 100644 config/locales/en/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml delete mode 100644 config/locales/en/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml delete mode 100644 config/locales/en/notifiers/course/video_notifier/video_notifier.yml delete mode 100644 config/locales/ko/course/enrol_requests.yml delete mode 100644 config/locales/ko/course/mailer/assessment_closing_reminder_email.yml delete mode 100644 config/locales/ko/course/mailer/assessment_closing_summary_email.yml delete mode 100644 config/locales/ko/course/mailer/course_duplicate_failed_email.yml delete mode 100644 config/locales/ko/course/mailer/course_duplicated_email.yml delete mode 100644 config/locales/ko/course/mailer/course_user_deletion_failed_email.yml delete mode 100644 config/locales/ko/course/mailer/submission_graded_email.yml delete mode 100644 config/locales/ko/course/mailer/survey_closing_reminder_email.yml delete mode 100644 config/locales/ko/course/mailer/survey_closing_summary_reminder.yml delete mode 100644 config/locales/ko/course/mailer/user_added_email.yml delete mode 100644 config/locales/ko/course/mailer/user_enrol_requested_email.yml delete mode 100644 config/locales/ko/course/mailer/user_invitation_email.yml delete mode 100644 config/locales/ko/course/mailer/user_rejected_email.yml delete mode 100644 config/locales/ko/instance/mailer/user_added_email.yml delete mode 100644 config/locales/ko/instance/mailer/user_invitation_email.yml create mode 100644 config/locales/ko/mailers.yml delete mode 100644 config/locales/ko/notifiers.yml delete mode 100644 config/locales/ko/notifiers/course/announcement_notifier/new/course_notifications/email.yml delete mode 100644 config/locales/ko/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml delete mode 100644 config/locales/ko/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml delete mode 100644 config/locales/ko/notifiers/course/assessment_notifier/opening/course_notifications/email.yml delete mode 100644 config/locales/ko/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml delete mode 100644 config/locales/ko/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml delete mode 100644 config/locales/ko/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml delete mode 100644 config/locales/ko/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml delete mode 100644 config/locales/ko/notifiers/course/video_notifier/video_notifier.yml delete mode 100644 config/locales/zh/course/enrol_requests.yml delete mode 100644 config/locales/zh/course/mailer/assessment_closing_reminder_email.yml delete mode 100644 config/locales/zh/course/mailer/assessment_closing_summary_email.yml delete mode 100644 config/locales/zh/course/mailer/course_duplicate_failed_email.yml delete mode 100644 config/locales/zh/course/mailer/course_duplicated_email.yml delete mode 100644 config/locales/zh/course/mailer/course_user_deletion_failed_email.yml delete mode 100644 config/locales/zh/course/mailer/submission_graded_email.yml delete mode 100644 config/locales/zh/course/mailer/survey_closing_reminder_email.yml delete mode 100644 config/locales/zh/course/mailer/survey_closing_summary_reminder.yml delete mode 100644 config/locales/zh/course/mailer/user_added_email.yml delete mode 100644 config/locales/zh/course/mailer/user_enrol_requested_email.yml delete mode 100644 config/locales/zh/course/mailer/user_invitation_email.yml delete mode 100644 config/locales/zh/course/mailer/user_rejected_email.yml delete mode 100644 config/locales/zh/instance/mailer/user_added_email.yml delete mode 100644 config/locales/zh/instance/mailer/user_invitation_email.yml create mode 100644 config/locales/zh/mailers.yml delete mode 100644 config/locales/zh/notifiers.yml delete mode 100644 config/locales/zh/notifiers/course/announcement_notifier/new/course_notifications/email.yml delete mode 100644 config/locales/zh/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml delete mode 100644 config/locales/zh/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml delete mode 100644 config/locales/zh/notifiers/course/assessment_notifier/opening/course_notifications/email.yml delete mode 100644 config/locales/zh/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml delete mode 100644 config/locales/zh/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml delete mode 100644 config/locales/zh/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml delete mode 100644 config/locales/zh/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml delete mode 100644 config/locales/zh/notifiers/course/video_notifier/video_notifier.yml diff --git a/app/helpers/application_mailer_helper.rb b/app/helpers/application_mailer_helper.rb index 3eb6c7c90c1..882ac261284 100644 --- a/app/helpers/application_mailer_helper.rb +++ b/app/helpers/application_mailer_helper.rb @@ -6,6 +6,6 @@ module ApplicationMailerHelper # @param [string] text The text to display # @param [string] url The URL to link to def plain_link_to(text, url) - t('common.plain_text_link', text: text, url: url) + t('common.mailers.plain_text_link', text: text, url: url) end end diff --git a/app/views/course/mailer/course_duplicated_email.html.slim b/app/views/course/mailer/course_duplicated_email.html.slim index b53b6b057c4..cf02d7bf1c8 100644 --- a/app/views/course/mailer/course_duplicated_email.html.slim +++ b/app/views/course/mailer/course_duplicated_email.html.slim @@ -1,3 +1,3 @@ = simple_format(t('.message', original_course: @original_course.title, new_course: @new_course.title, - click_here: plain_link_to(t('.click_here'), course_url(@new_course, host: @new_course.instance.host)))) + click_here: plain_link_to(t('common.mailers.click_here'), course_url(@new_course, host: @new_course.instance.host)))) diff --git a/app/views/course/mailer/course_duplicated_email.text.erb b/app/views/course/mailer/course_duplicated_email.text.erb index b2378511c83..a47a765200e 100644 --- a/app/views/course/mailer/course_duplicated_email.text.erb +++ b/app/views/course/mailer/course_duplicated_email.text.erb @@ -1,3 +1,3 @@ <%= t('.message', original_course: @original_course.title, new_course: @new_course.title, - click_here: plain_link_to(t('.click_here'), course_url(@new_course, host: @new_course.instance.host))) %> + click_here: plain_link_to(t('common.mailers.click_here'), course_url(@new_course, host: @new_course.instance.host))) %> diff --git a/app/views/course/mailer/user_added_email.html.slim b/app/views/course/mailer/user_added_email.html.slim index a267bce95c1..4b6772e0d28 100644 --- a/app/views/course/mailer/user_added_email.html.slim +++ b/app/views/course/mailer/user_added_email.html.slim @@ -1,6 +1,6 @@ = simple_format(\ t('.message', course: link_to(@course.title, course_url(@course, host: @course.instance.host)), - coursemology: link_to(t('layout.coursemology'), @course.instance.host), + coursemology: link_to(t('common.mailers.coursemology'), @course.instance.host), email: @recipient.email\ )\ ) diff --git a/app/views/course/mailer/user_added_email.text.erb b/app/views/course/mailer/user_added_email.text.erb index 7bf1685b82b..9807247e9c5 100644 --- a/app/views/course/mailer/user_added_email.text.erb +++ b/app/views/course/mailer/user_added_email.text.erb @@ -1,3 +1,3 @@ <%= t('.message', course: plain_link_to(@course.title, course_url(@course, host: @course.instance.host)), - coursemology: plain_link_to(t('layout.coursemology'), @course.instance.host), + coursemology: plain_link_to(t('common.mailers.coursemology'), @course.instance.host), email: @recipient.email) %> diff --git a/app/views/course/mailer/user_enrol_requested_email.html.slim b/app/views/course/mailer/user_enrol_requested_email.html.slim index 25c8bde2995..1022c3ba4ec 100644 --- a/app/views/course/mailer/user_enrol_requested_email.html.slim +++ b/app/views/course/mailer/user_enrol_requested_email.html.slim @@ -1,4 +1,4 @@ -- course_requests_page = link_to(t('course.enrol_requests.index.header'), course_enrol_requests_url(@course, host: @course.instance.host)) +- course_requests_page = link_to(t('.user_requests_header'), course_enrol_requests_url(@course, host: @course.instance.host)) = simple_format(t('.message', user: link_to(@enrol_request.user.name, format('mailto: %s', @enrol_request.user.email)), course: link_to(@course.title, course_url(@course, host: @course.instance.host)), course_requests_page: course_requests_page)) diff --git a/app/views/course/mailer/user_enrol_requested_email.text.erb b/app/views/course/mailer/user_enrol_requested_email.text.erb index 1e3e45e448d..27469674318 100644 --- a/app/views/course/mailer/user_enrol_requested_email.text.erb +++ b/app/views/course/mailer/user_enrol_requested_email.text.erb @@ -1,4 +1,4 @@ -<% course_requests_page = plain_link_to(t('course.enrol_requests.index.header'), course_enrol_requests_url(@course, host: @course.instance.host)) %> +<% course_requests_page = plain_link_to(t('.user_requests_header'), course_enrol_requests_url(@course, host: @course.instance.host)) %> <%= t('.message', user: plain_link_to(@enrol_request.user.name, @enrol_request.user.email), course: plain_link_to(@course.title, course_url(@course, host: @course.instance.host)), course_requests_page: course_requests_page) %> diff --git a/app/views/course/mailer/user_invitation_email.html.slim b/app/views/course/mailer/user_invitation_email.html.slim index 3852c78f4b2..1aad935590e 100644 --- a/app/views/course/mailer/user_invitation_email.html.slim +++ b/app/views/course/mailer/user_invitation_email.html.slim @@ -1,7 +1,7 @@ = simple_format(t('.message', course: link_to(@course.title, course_url(@course, host: @course.instance.host)), - coursemology: link_to(t('layout.coursemology'), @course.instance.host), + coursemology: link_to(t('common.mailers.coursemology'), @course.instance.host), email: @invitation.email, - click_here: link_to(t('.click_here'), new_user_registration_url(invitation: @invitation.invitation_key, + click_here: link_to(t('common.mailers.click_here'), new_user_registration_url(invitation: @invitation.invitation_key, host: @course.instance.host)))) pre diff --git a/app/views/course/mailer/user_invitation_email.text.erb b/app/views/course/mailer/user_invitation_email.text.erb index 1b95729b08b..3faaa522b86 100644 --- a/app/views/course/mailer/user_invitation_email.text.erb +++ b/app/views/course/mailer/user_invitation_email.text.erb @@ -1,7 +1,7 @@ <%= t('.message', course: plain_link_to(@course.title, course_url(@course, host: @course.instance.host)), - coursemology: plain_link_to(t('layout.coursemology'), @course.instance.host), + coursemology: plain_link_to(t('common.mailers.coursemology'), @course.instance.host), email: @invitation.email, - click_here: plain_link_to(t('.click_here'), new_user_registration_url(invitation: @invitation.invitation_key, + click_here: plain_link_to(t('common.mailers.click_here'), new_user_registration_url(invitation: @invitation.invitation_key, host: @course.instance.host))) %> <%= @invitation.invitation_key %> diff --git a/app/views/course/mailer/user_rejected_email.html.slim b/app/views/course/mailer/user_rejected_email.html.slim index 07819116875..fcb97c68e68 100644 --- a/app/views/course/mailer/user_rejected_email.html.slim +++ b/app/views/course/mailer/user_rejected_email.html.slim @@ -1,5 +1,5 @@ = simple_format(\ t('.message', course: link_to(@course.title, course_url(@course, host: @course.instance.host)), - coursemology: link_to(t('layout.coursemology'), @course.instance.host)\ + coursemology: link_to(t('common.mailers.coursemology'), @course.instance.host)\ )\ ) diff --git a/app/views/course/mailer/user_rejected_email.text.erb b/app/views/course/mailer/user_rejected_email.text.erb index 3d0f00a4fee..9f0e7d7b22c 100644 --- a/app/views/course/mailer/user_rejected_email.text.erb +++ b/app/views/course/mailer/user_rejected_email.text.erb @@ -1,2 +1,2 @@ <%= t('.message', course: plain_link_to(@course.title, course_url(@course, host: @course.instance.host)), - coursemology: plain_link_to(t('layout.coursemology'), @course.instance.host)) %> + coursemology: plain_link_to(t('common.mailers.coursemology'), @course.instance.host)) %> diff --git a/app/views/instance/mailer/user_added_email.html.slim b/app/views/instance/mailer/user_added_email.html.slim index 81398ec2a4f..943cee935ac 100644 --- a/app/views/instance/mailer/user_added_email.html.slim +++ b/app/views/instance/mailer/user_added_email.html.slim @@ -1,6 +1,6 @@ = simple_format(\ t('.message', instance: link_to(@instance.name, @instance.host), - coursemology: link_to(t('layout.coursemology'), @instance.host), + coursemology: link_to(t('common.mailers.coursemology'), @instance.host), email: @recipient.email\ )\ ) diff --git a/app/views/instance/mailer/user_added_email.text.erb b/app/views/instance/mailer/user_added_email.text.erb index a580698f4d6..a665a1319fd 100644 --- a/app/views/instance/mailer/user_added_email.text.erb +++ b/app/views/instance/mailer/user_added_email.text.erb @@ -1,3 +1,3 @@ <%= t('.message', instance: plain_link_to(@instance.name, @instance.host), - coursemology: plain_link_to(t('layout.coursemology'), @instance.host), + coursemology: plain_link_to(t('common.mailers.coursemology'), @instance.host), email: @recipient.email) %> diff --git a/app/views/instance/mailer/user_invitation_email.html.slim b/app/views/instance/mailer/user_invitation_email.html.slim index c1645782975..308d0ba57c7 100644 --- a/app/views/instance/mailer/user_invitation_email.html.slim +++ b/app/views/instance/mailer/user_invitation_email.html.slim @@ -1,5 +1,5 @@ = simple_format(t('.message', instance: link_to(@instance.name, @instance.host), - coursemology: link_to(t('layout.coursemology'), @instance.host), + coursemology: link_to(t('common.mailers.coursemology'), @instance.host), email: @invitation.email, - click_here: link_to(t('.click_here'), new_user_registration_url(invitation: @invitation.invitation_key, + click_here: link_to(t('common.mailers.click_here'), new_user_registration_url(invitation: @invitation.invitation_key, host: @instance.host)))) diff --git a/app/views/instance/mailer/user_invitation_email.text.erb b/app/views/instance/mailer/user_invitation_email.text.erb index 65a0ea04883..292fefb86fb 100644 --- a/app/views/instance/mailer/user_invitation_email.text.erb +++ b/app/views/instance/mailer/user_invitation_email.text.erb @@ -1,5 +1,5 @@ <%= t('.message', instance: plain_link_to(@instance.name, @instance.host), - coursemology: plain_link_to(t('layout.coursemology'), @instance.host), + coursemology: plain_link_to(t('common.mailers.coursemology'), @instance.host), email: @invitation.email, - click_here: plain_link_to(t('.click_here'), new_user_registration_url(invitation: @invitation.invitation_key, + click_here: plain_link_to(t('common.mailers.click_here'), new_user_registration_url(invitation: @invitation.invitation_key, host: @instance.host))) %> diff --git a/app/views/instance_user_role_request_mailer/new_role_request.html.slim b/app/views/instance_user_role_request_mailer/new_role_request.html.slim index 4ed7589e382..48060a65446 100644 --- a/app/views/instance_user_role_request_mailer/new_role_request.html.slim +++ b/app/views/instance_user_role_request_mailer/new_role_request.html.slim @@ -9,7 +9,7 @@ organization: @request.organization || t('.empty'), designation: @request.designation || t('.empty'), reason: @request.reason || t('.empty'), - click_here: link_to(t('common.click_here'), + click_here: link_to(t('common.mailers.click_here'), instance_user_role_requests_url(host: instance.host))\ )\ ) diff --git a/app/views/instance_user_role_request_mailer/new_role_request.text.erb b/app/views/instance_user_role_request_mailer/new_role_request.text.erb index 56280d67d3a..7b8a35cf377 100644 --- a/app/views/instance_user_role_request_mailer/new_role_request.text.erb +++ b/app/views/instance_user_role_request_mailer/new_role_request.text.erb @@ -10,6 +10,6 @@ organization: @request.organization || t('.empty'), designation: @request.designation || t('.empty'), reason: @request.reason || t('.empty'), - click_here: plain_link_to(t('common.click_here'), instance_user_role_requests_url(host: instance.host)) + click_here: plain_link_to(t('common.mailers.click_here'), instance_user_role_requests_url(host: instance.host)) ) %> diff --git a/app/views/instance_user_role_request_mailer/role_request_approved.html.slim b/app/views/instance_user_role_request_mailer/role_request_approved.html.slim index 8aa29311dd9..bd03b42b31e 100644 --- a/app/views/instance_user_role_request_mailer/role_request_approved.html.slim +++ b/app/views/instance_user_role_request_mailer/role_request_approved.html.slim @@ -1,6 +1,6 @@ = simple_format(\ t('.message', role: @instance_user.role, - click_here: link_to(t('common.click_here'), courses_url(host: @instance.host))\ + click_here: link_to(t('common.mailers.click_here'), courses_url(host: @instance.host))\ )\ ) diff --git a/app/views/instance_user_role_request_mailer/role_request_approved.text.erb b/app/views/instance_user_role_request_mailer/role_request_approved.text.erb index 97392b25298..a7986247610 100644 --- a/app/views/instance_user_role_request_mailer/role_request_approved.text.erb +++ b/app/views/instance_user_role_request_mailer/role_request_approved.text.erb @@ -2,6 +2,6 @@ t( '.message', role: @instance_user.role, - click_here: plain_link_to(t('common.click_here'), courses_url(host: @instance.host)) + click_here: plain_link_to(t('common.mailers.click_here'), courses_url(host: @instance.host)) ) %> diff --git a/app/views/layouts/_manage_email_subscription.html.slim b/app/views/layouts/_manage_email_subscription.html.slim index 8808061aabf..1ea23c3ce75 100644 --- a/app/views/layouts/_manage_email_subscription.html.slim +++ b/app/views/layouts/_manage_email_subscription.html.slim @@ -7,4 +7,4 @@ component: component, category_id: category_id, setting: setting) -= simple_format(t('.message', manage_email_subscription_link: link_to(t('.tag'), manage_email_subscription_url))) += simple_format(t('common.mailers.manage_email_subscription.message', manage_email_subscription_link: link_to(t('common.mailers.manage_email_subscription.tag'), manage_email_subscription_url))) diff --git a/app/views/layouts/_manage_email_subscription.text.erb b/app/views/layouts/_manage_email_subscription.text.erb index 51fbead70f1..f56c7c2eeee 100644 --- a/app/views/layouts/_manage_email_subscription.text.erb +++ b/app/views/layouts/_manage_email_subscription.text.erb @@ -7,4 +7,4 @@ component: component, category_id: category_id, setting: setting) %> -<%= simple_format(t('.message', manage_email_subscription_link: link_to(t('.tag'), manage_email_subscription_url))) %> +<%= simple_format(t('common.mailers.manage_email_subscription.message', manage_email_subscription_link: link_to(t('common.mailers.manage_email_subscription.tag'), manage_email_subscription_url))) %> diff --git a/app/views/layouts/mailer.html.slim b/app/views/layouts/mailer.html.slim index 832d5bab90c..bc192526009 100644 --- a/app/views/layouts/mailer.html.slim +++ b/app/views/layouts/mailer.html.slim @@ -7,6 +7,6 @@ html body p - = t('.greeting', user: @recipient.name) + = t('common.mailers.greeting', user: @recipient.name) = yield diff --git a/app/views/layouts/mailer.text.erb b/app/views/layouts/mailer.text.erb index cf106b45aaf..d7e36a1a96f 100644 --- a/app/views/layouts/mailer.text.erb +++ b/app/views/layouts/mailer.text.erb @@ -1,3 +1,3 @@ -<%= t('.greeting', user: @recipient.name) %> +<%= t('common.mailers.greeting', user: @recipient.name) %> <%= yield %> diff --git a/app/views/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.html.slim b/app/views/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.html.slim index a02924da542..5eb2571fb2a 100644 --- a/app/views/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.html.slim +++ b/app/views/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.html.slim @@ -11,7 +11,7 @@ - category_id = assessment.tab.category.id - message.subject = t('.subject', course: course.title, topic: "#{assessment.title}: #{question_assessment.display_title}") -- message.subject += ' ' + t('notifiers.course.phantom') if course_user.phantom? +- message.subject += ' ' + t('common.mailers.phantom_course_user') if course_user.phantom? - step = submission.questions.index(question) + 1 = format_html(t('.message', diff --git a/app/views/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.html.slim b/app/views/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.html.slim index f26a3cd2999..ade6133f41e 100644 --- a/app/views/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.html.slim +++ b/app/views/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.html.slim @@ -9,7 +9,7 @@ - category_id = assessment.tab.category.id - message.subject = t('.subject', course: course.title, topic: "#{assessment.title}: #{question_assessment.display_title}") -- message.subject += ' ' + t('notifiers.course.phantom') if course_user.phantom? +- message.subject += ' ' + t('common.mailers.phantom_course_user') if course_user.phantom? - step = assessment.questions.index(question) + 1 = format_html(t('.message', diff --git a/app/views/notifiers/course/assessment_notifier/submitted/user_notifications/email.html.slim b/app/views/notifiers/course/assessment_notifier/submitted/user_notifications/email.html.slim index ab1788c0108..fef94809256 100644 --- a/app/views/notifiers/course/assessment_notifier/submitted/user_notifications/email.html.slim +++ b/app/views/notifiers/course/assessment_notifier/submitted/user_notifications/email.html.slim @@ -7,7 +7,7 @@ - category_id = assessment.tab.category.id - message.subject = t('.subject', course: course.title, assessment: submission.assessment.title) -- message.subject += ' ' + t('notifiers.course.phantom') if course_user.phantom? +- message.subject += ' ' + t('common.mailers.phantom_course_user') if course_user.phantom? = simple_format(t('.message', submission: link_to(:submission, submission_url), user: submission.course_user.name)) diff --git a/app/views/notifiers/course/forum/post_notifier/replied/user_notifications/email.html.slim b/app/views/notifiers/course/forum/post_notifier/replied/user_notifications/email.html.slim index bb5623fea6f..4f505e1cae2 100644 --- a/app/views/notifiers/course/forum/post_notifier/replied/user_notifications/email.html.slim +++ b/app/views/notifiers/course/forum/post_notifier/replied/user_notifications/email.html.slim @@ -7,10 +7,10 @@ - course_title = format_inline_text(course.title) - topic_title = format_inline_text(topic.title) -- post_author = post.is_anonymous ? t('notifiers.course.anonymous_user') : format_inline_text(post.author_name) +- post_author = post.is_anonymous ? t('common.mailers.anonymous_course_user') : format_inline_text(post.author_name) - message.subject = t('.subject', course: course_title, topic: topic_title) -- message.subject += ' ' + t('notifiers.course.phantom') if course_user&.phantom? +- message.subject += ' ' + t('common.mailers.phantom_course_user') if course_user&.phantom? = format_html(t('.message', topic: link_to(topic_title, diff --git a/config/locales/en/common.yml b/config/locales/en/common.yml index 15ae976143c..1462ed3977d 100644 --- a/config/locales/en/common.yml +++ b/config/locales/en/common.yml @@ -1,7 +1,4 @@ en: - common: - plain_text_link: '%{text} (%{url})' - click_here: 'Click here' helpers: password: wrong_password: 'Wrong password' diff --git a/config/locales/en/course/enrol_requests.yml b/config/locales/en/course/enrol_requests.yml deleted file mode 100644 index b8074b958b4..00000000000 --- a/config/locales/en/course/enrol_requests.yml +++ /dev/null @@ -1,5 +0,0 @@ -en: - course: - enrol_requests: - index: - header: 'User Requests' diff --git a/config/locales/en/course/mailer/assessment_closing_reminder_email.yml b/config/locales/en/course/mailer/assessment_closing_reminder_email.yml deleted file mode 100644 index 991a551878e..00000000000 --- a/config/locales/en/course/mailer/assessment_closing_reminder_email.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - course: - mailer: - assessment_closing_reminder_email: - subject: '%{course}: Reminder about %{assessment}' - message: > - Please be reminded that %{assessment} is due on %{time}. - message_no_time: > - Please be reminded to attempt and submit the assessment - %{assessment}. diff --git a/config/locales/en/course/mailer/assessment_closing_summary_email.yml b/config/locales/en/course/mailer/assessment_closing_summary_email.yml deleted file mode 100644 index 6f6761db7f2..00000000000 --- a/config/locales/en/course/mailer/assessment_closing_summary_email.yml +++ /dev/null @@ -1,13 +0,0 @@ -en: - course: - mailer: - assessment_closing_summary_email: - subject: '%{course}: Reminder about %{assessment}' - message: > - Emails were sent to the following students to remind them that %{assessment} is due on %{time}: - - %{students} - message_no_time: > - Emails were sent to the following students to remind them to attempt and submit the assessment - %{assessment}: - - %{students} diff --git a/config/locales/en/course/mailer/course_duplicate_failed_email.yml b/config/locales/en/course/mailer/course_duplicate_failed_email.yml deleted file mode 100644 index 195a629842f..00000000000 --- a/config/locales/en/course/mailer/course_duplicate_failed_email.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - course: - mailer: - course_duplicate_failed_email: - subject: 'Course Duplication Failed: %{original_course}' - message: > - Duplication of %{original_course} has failed. - Please try again later or contact support if the problem persists. diff --git a/config/locales/en/course/mailer/course_duplicated_email.yml b/config/locales/en/course/mailer/course_duplicated_email.yml deleted file mode 100644 index 1a55d63cbee..00000000000 --- a/config/locales/en/course/mailer/course_duplicated_email.yml +++ /dev/null @@ -1,10 +0,0 @@ -en: - course: - mailer: - course_duplicated_email: - subject: 'Course Duplication Completed: %{new_course}' - click_here: 'Click here' - message: > - Duplication of %{original_course} to %{new_course} has completed. - - %{click_here} to view the duplicated course. diff --git a/config/locales/en/course/mailer/course_user_deletion_failed_email.yml b/config/locales/en/course/mailer/course_user_deletion_failed_email.yml deleted file mode 100644 index 9d5a84761d0..00000000000 --- a/config/locales/en/course/mailer/course_user_deletion_failed_email.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - course: - mailer: - course_user_deletion_failed_email: - subject: 'User %{course_user_name} Failed to be Deleted from %{course_name}' - message: > - Deletion of %{course_user_name} from the Course %{course_name} has failed. - Please try again later or contact support if the problem persists. diff --git a/config/locales/en/course/mailer/submission_graded_email.yml b/config/locales/en/course/mailer/submission_graded_email.yml deleted file mode 100644 index 3aa8116cd31..00000000000 --- a/config/locales/en/course/mailer/submission_graded_email.yml +++ /dev/null @@ -1,7 +0,0 @@ -en: - course: - mailer: - submission_graded_email: - subject: '%{course}: Your submission for %{assessment} has been graded' - message: > - Click %{submission} to view your grade. diff --git a/config/locales/en/course/mailer/survey_closing_reminder_email.yml b/config/locales/en/course/mailer/survey_closing_reminder_email.yml deleted file mode 100644 index 878cf0fffcf..00000000000 --- a/config/locales/en/course/mailer/survey_closing_reminder_email.yml +++ /dev/null @@ -1,7 +0,0 @@ -en: - course: - mailer: - survey_closing_reminder_email: - subject: '%{course}: Reminder about %{survey}' - message: > - Please be reminded that %{survey} will expire on %{time}. diff --git a/config/locales/en/course/mailer/survey_closing_summary_reminder.yml b/config/locales/en/course/mailer/survey_closing_summary_reminder.yml deleted file mode 100644 index b2f86dee2c5..00000000000 --- a/config/locales/en/course/mailer/survey_closing_summary_reminder.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - course: - mailer: - survey_closing_summary_email: - subject: '%{course}: Reminder about %{survey}' - message: > - Emails were sent to the following students to remind them that %{survey} will expire on %{time}: - - %{student_list} diff --git a/config/locales/en/course/mailer/user_added_email.yml b/config/locales/en/course/mailer/user_added_email.yml deleted file mode 100644 index 5ee1f798513..00000000000 --- a/config/locales/en/course/mailer/user_added_email.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - course: - mailer: - user_added_email: - subject: 'Added to Course %{course}' - message: > - You have been added to the course %{course} on %{coursemology}. - - To view the course, please log in with %{email}. diff --git a/config/locales/en/course/mailer/user_enrol_requested_email.yml b/config/locales/en/course/mailer/user_enrol_requested_email.yml deleted file mode 100644 index 149dfb2c1dd..00000000000 --- a/config/locales/en/course/mailer/user_enrol_requested_email.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - course: - mailer: - user_enrol_requested_email: - subject: 'Enrol Request for %{course}' - recipients: 'Course Managers' - message: > - %{user} has requested to enrol in %{course} - - - You can visit the %{course_requests_page} to view and approve requests. diff --git a/config/locales/en/course/mailer/user_invitation_email.yml b/config/locales/en/course/mailer/user_invitation_email.yml deleted file mode 100644 index 5737fb8e86b..00000000000 --- a/config/locales/en/course/mailer/user_invitation_email.yml +++ /dev/null @@ -1,17 +0,0 @@ -en: - course: - mailer: - user_invitation_email: - subject: 'Invitation to Register for %{course}' - click_here: 'Click here' - message: > - You are invited to register for %{course} on %{coursemology}. - - - You do not seem to have an account registered at this email address (%{email}); - - %{click_here} to create an account and accept the invitation. - - - If you have an existing Coursemology account registered under a different email, - visit %{course} and enrol with the following non-transferable registration code: diff --git a/config/locales/en/course/mailer/user_rejected_email.yml b/config/locales/en/course/mailer/user_rejected_email.yml deleted file mode 100644 index f192fd2b7a6..00000000000 --- a/config/locales/en/course/mailer/user_rejected_email.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - course: - mailer: - user_rejected_email: - subject: 'Course enrolment request rejected - %{course}' - message: > - Your request to be enrolled in the course - %{course} on %{coursemology} has been rejected! - diff --git a/config/locales/en/instance/mailer/user_added_email.yml b/config/locales/en/instance/mailer/user_added_email.yml deleted file mode 100644 index eba9d4abfc0..00000000000 --- a/config/locales/en/instance/mailer/user_added_email.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - instance: - mailer: - user_added_email: - subject: 'Added to Instance %{instance}' - message: > - You have been added to the instance %{instance} on %{coursemology}. - - To view the instance, please log in with %{email}. diff --git a/config/locales/en/instance/mailer/user_invitation_email.yml b/config/locales/en/instance/mailer/user_invitation_email.yml deleted file mode 100644 index 78a181459d4..00000000000 --- a/config/locales/en/instance/mailer/user_invitation_email.yml +++ /dev/null @@ -1,13 +0,0 @@ -en: - instance: - mailer: - user_invitation_email: - subject: 'Invitation to %{instance} instance with %{role} role' - click_here: 'Click here' - message: > - You are invited to register for the %{instance} instance on %{coursemology}. - - - You do not seem to have an account registered at this email address (%{email}); - - %{click_here} to create an account and accept the invitation. diff --git a/config/locales/en/instance_user_role_request_mailer.yml b/config/locales/en/instance_user_role_request_mailer.yml deleted file mode 100644 index de801aa8a06..00000000000 --- a/config/locales/en/instance_user_role_request_mailer.yml +++ /dev/null @@ -1,40 +0,0 @@ -en: - instance_user_role_request_mailer: - new_role_request: - subject: 'New role request!' - empty: '(Not specified)' - message_html: > - %{user} (%{email}) requests to become an %{role} in the %{instance} instance. - - Organization - - %{organization} - - - Designation - - %{designation} - - - Reason - - %{reason} - - - %{click_here} to review the request. - - role_request_approved: - subject: 'Your role request has been approved!' - message: > - You have been approved to be an %{role} on Coursemology! - - %{click_here} to create a new course and get started! - - role_request_rejected: - subject: 'Your role request has been rejected!' - message_empty: > - Your role request to be an %{role} on Coursemology has been rejected! - message: > - Your role request to be an %{role} on Coursemology has been rejected! - Please refer to the message below: - %{message} diff --git a/config/locales/en/layout.yml b/config/locales/en/layout.yml index d02f2ca5fa8..62f4ebed21c 100644 --- a/config/locales/en/layout.yml +++ b/config/locales/en/layout.yml @@ -1,11 +1,4 @@ en: - layout: - coursemology: 'Coursemology' layouts: - mailer: - greeting: 'Hello, %{user}:' code_formatter: size_too_big: 'The file is too big and cannot be displayed.' - manage_email_subscription: - tag: 'Unsubscribe' - message: '%{manage_email_subscription_link} from this email topic.' diff --git a/config/locales/en/mailers.yml b/config/locales/en/mailers.yml new file mode 100644 index 00000000000..1584735fc62 --- /dev/null +++ b/config/locales/en/mailers.yml @@ -0,0 +1,246 @@ +en: + common: + # Shared keys used across course mailers, instance mailers, and notifiers + mailers: + anonymous_course_user: An anonymous user + click_here: 'Click here' + coursemology: 'Coursemology' + greeting: 'Hello, %{user}:' + manage_email_subscription: + tag: 'Unsubscribe' + message: '%{manage_email_subscription_link} from this email topic.' + plain_text_link: '%{text} (%{url})' + phantom_course_user: '(Phantom)' + course: + mailer: + assessment_closing_reminder_email: + subject: '%{course}: Reminder about %{assessment}' + message: > + Please be reminded that %{assessment} is due on %{time}. + message_no_time: > + Please be reminded to attempt and submit the assessment - %{assessment}. + assessment_closing_summary_email: + subject: '%{course}: Reminder about %{assessment}' + message: > + Emails were sent to the following students to remind them that %{assessment} is due on %{time}: + + %{students} + message_no_time: > + Emails were sent to the following students to remind them to attempt and submit the assessment - %{assessment}: + + %{students} + course_duplicate_failed_email: + subject: 'Course Duplication Failed: %{original_course}' + message: > + Duplication of %{original_course} has failed. + Please try again later or contact support if the problem persists. + course_duplicated_email: + subject: 'Course Duplication Completed: %{new_course}' + message: > + Duplication of %{original_course} to %{new_course} has completed. + + %{click_here} to view the duplicated course. + course_user_deletion_failed_email: + subject: 'User %{course_user_name} Failed to be Deleted from %{course_name}' + message: > + Deletion of %{course_user_name} from the Course %{course_name} has failed. + Please try again later or contact support if the problem persists. + submission_graded_email: + subject: '%{course}: Your submission for %{assessment} has been graded' + message: > + Click %{submission} to view your grade. + survey_closing_reminder_email: + subject: '%{course}: Reminder about %{survey}' + message: > + Please be reminded that %{survey} will expire on %{time}. + survey_closing_summary_email: + subject: '%{course}: Reminder about %{survey}' + message: > + Emails were sent to the following students to remind them that %{survey} will expire on %{time}: + + %{student_list} + user_added_email: + subject: 'Added to Course %{course}' + message: > + You have been added to the course %{course} on %{coursemology}. + + To view the course, please log in with %{email}. + user_enrol_requested_email: + subject: 'Enrol Request for %{course}' + recipients: 'Course Managers' + user_requests_header: 'User Requests' + message: > + %{user} has requested to enrol in %{course} + + + You can visit the %{course_requests_page} to view and approve requests. + user_invitation_email: + subject: 'Invitation to Register for %{course}' + message: > + You are invited to register for %{course} on %{coursemology}. + + + You do not seem to have an account registered at this email address (%{email}); + + %{click_here} to create an account and accept the invitation. + + + If you have an existing Coursemology account registered under a different email, + visit %{course} and enrol with the following non-transferable registration code: + user_rejected_email: + subject: 'Course enrolment request rejected - %{course}' + message: > + Your request to be enrolled in the course - %{course} on %{coursemology} has been rejected! + instance: + mailer: + user_added_email: + subject: 'Added to Instance %{instance}' + message: > + You have been added to the instance %{instance} on %{coursemology}. + + To view the instance, please log in with %{email}. + + user_invitation_email: + subject: 'Invitation to %{instance} instance with %{role} role' + message: > + You are invited to register for the %{instance} instance on %{coursemology}. + + + You do not seem to have an account registered at this email address (%{email}); + + %{click_here} to create an account and accept the invitation. + instance_user_role_request_mailer: + new_role_request: + subject: 'New role request!' + empty: '(Not specified)' + message_html: > + %{user} (%{email}) requests to become an %{role} in the %{instance} instance. + + Organization + + %{organization} + + + Designation + + %{designation} + + + Reason + + %{reason} + + + %{click_here} to review the request. + role_request_approved: + subject: 'Your role request has been approved!' + message: > + You have been approved to be an %{role} on Coursemology! + + %{click_here} to create a new course and get started! + role_request_rejected: + subject: 'Your role request has been rejected!' + message_empty: > + Your role request to be an %{role} on Coursemology has been rejected! + message: > + Your role request to be an %{role} on Coursemology has been rejected! + Please refer to the message below: + %{message} + notifiers: + course: + announcement_notifier: + new: + course_notifications: + email: + subject: '%{course} New Announcement: %{announcement}' + message: > +

%{creator} posted a new %{announcement} from course: %{course}

+ %{content} + assessment_notifier: + opening: + course_notifications: + email: + subject: '%{course} New Assessment Available' + message: > + New Assessment Available : %{assessment} + submitted: + user_notifications: + email: + subject: '%{course} New Submission on: %{assessment}' + message: > + There is a new submission by %{user} + + Please review and grade the %{submission}. + assessment: + answer: + comment_notifier: + annotated: + user_notifications: + email: + subject: '%{course}: New annotation on %{topic}' + message: > +

%{post_author} added an annotation, %{post}

+ +

You can reply here:

+ %{topic} + submission_question: + comment_notifier: + replied: + user_notifications: + email: + subject: '%{course}: New comment on %{topic}' + message: > +

%{post_author} commented, %{post}

+ +

You can reply here:

+ %{topic} + consolidated_opening_reminder_notifier: + opening_reminder: + course_notifications: + email: + subject: 'Opening Reminders for %{course}' + message: 'The following items are opening in the next 24 hours.' + course: + assessment: + section_header: 'New Assessments Available:' + survey: + section_header: 'New Surveys Available:' + video: + section_header: 'New Videos Available:' + forum: + post_notifier: + replied: + user_notifications: + email: + subject: '%{course} New reply for forum topic: %{topic}' + message: > +

%{post_author} replied,

+ %{post} +

You can respond here: %{topic}


+ unsubscribe: + tag: 'Unsubscribe' + message: '%{unsubscribe_link} from email notifications for this forum topic.' + topic_notifier: + created: + user_notifications: + email: + subject: '%{course} New topic created in forum: %{forum}' + message: > +

%{topic_author} has created a new topic in the forum: %{topic}


+ %{post} + unsubscribe: + tag: 'Unsubscribe' + message: '%{unsubscribe_link} from email notification for this forum.' + video_notifier: + opening: + course_notifications: + email: + subject: '%{course} New Video Available' + message: > + New Video Available : %{video} + closing: + user_notifications: + email: + subject: '%{course} Reminder for %{video}' + message: > + Please be reminded that %{video} is due on %{time} diff --git a/config/locales/en/notifiers.yml b/config/locales/en/notifiers.yml deleted file mode 100644 index f004ee9aa5d..00000000000 --- a/config/locales/en/notifiers.yml +++ /dev/null @@ -1,5 +0,0 @@ -en: - notifiers: - course: - phantom: '(Phantom)' - anonymous_user: 'An anonymous user' diff --git a/config/locales/en/notifiers/course/announcement_notifier/new/course_notifications/email.yml b/config/locales/en/notifiers/course/announcement_notifier/new/course_notifications/email.yml deleted file mode 100644 index 21bdbf584fd..00000000000 --- a/config/locales/en/notifiers/course/announcement_notifier/new/course_notifications/email.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - notifiers: - course: - announcement_notifier: - new: - course_notifications: - email: - subject: '%{course} New Announcement: %{announcement}' - message: > -

%{creator} posted a new %{announcement} from course: %{course}

- %{content} diff --git a/config/locales/en/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml b/config/locales/en/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml deleted file mode 100644 index 380bafd21f9..00000000000 --- a/config/locales/en/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml +++ /dev/null @@ -1,15 +0,0 @@ -en: - notifiers: - course: - assessment: - answer: - comment_notifier: - annotated: - user_notifications: - email: - subject: '%{course}: New annotation on %{topic}' - message: > -

%{post_author} added an annotation, %{post}

- -

You can reply here:

- %{topic} diff --git a/config/locales/en/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml b/config/locales/en/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml deleted file mode 100644 index f447a17c4ce..00000000000 --- a/config/locales/en/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml +++ /dev/null @@ -1,15 +0,0 @@ -en: - notifiers: - course: - assessment: - submission_question: - comment_notifier: - replied: - user_notifications: - email: - subject: '%{course}: New comment on %{topic}' - message: > -

%{post_author} commented, %{post}

- -

You can reply here:

- %{topic} diff --git a/config/locales/en/notifiers/course/assessment_notifier/opening/course_notifications/email.yml b/config/locales/en/notifiers/course/assessment_notifier/opening/course_notifications/email.yml deleted file mode 100644 index 7724afe9443..00000000000 --- a/config/locales/en/notifiers/course/assessment_notifier/opening/course_notifications/email.yml +++ /dev/null @@ -1,10 +0,0 @@ -en: - notifiers: - course: - assessment_notifier: - opening: - course_notifications: - email: - subject: '%{course} New Assessment Available' - message: > - New Assessment Available : %{assessment} diff --git a/config/locales/en/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml b/config/locales/en/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml deleted file mode 100644 index 52dbecc845f..00000000000 --- a/config/locales/en/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml +++ /dev/null @@ -1,12 +0,0 @@ -en: - notifiers: - course: - assessment_notifier: - submitted: - user_notifications: - email: - subject: '%{course} New Submission on: %{assessment}' - message: > - There is a new submission by %{user} - - Please review and grade the %{submission}. diff --git a/config/locales/en/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml b/config/locales/en/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml deleted file mode 100644 index cf64d16723e..00000000000 --- a/config/locales/en/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml +++ /dev/null @@ -1,16 +0,0 @@ -en: - notifiers: - course: - consolidated_opening_reminder_notifier: - opening_reminder: - course_notifications: - email: - subject: 'Opening Reminders for %{course}' - message: 'The following items are opening in the next 24 hours.' - course: - assessment: - section_header: 'New Assessments Available:' - survey: - section_header: 'New Surveys Available:' - video: - section_header: 'New Videos Available:' diff --git a/config/locales/en/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml b/config/locales/en/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml deleted file mode 100644 index 6785355cf1a..00000000000 --- a/config/locales/en/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml +++ /dev/null @@ -1,16 +0,0 @@ -en: - notifiers: - course: - forum: - post_notifier: - replied: - user_notifications: - email: - subject: '%{course} New reply for forum topic: %{topic}' - message: > -

%{post_author} replied,

- %{post} -

You can respond here: %{topic}


- unsubscribe: - tag: 'Unsubscribe' - message: '%{unsubscribe_link} from email notifications for this forum topic.' diff --git a/config/locales/en/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml b/config/locales/en/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml deleted file mode 100644 index 3b0f15d7f9e..00000000000 --- a/config/locales/en/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml +++ /dev/null @@ -1,15 +0,0 @@ -en: - notifiers: - course: - forum: - topic_notifier: - created: - user_notifications: - email: - subject: '%{course} New topic created in forum: %{forum}' - message: > -

%{topic_author} has created a new topic in the forum: %{topic}


- %{post} - unsubscribe: - tag: 'Unsubscribe' - message: '%{unsubscribe_link} from email notification for this forum.' diff --git a/config/locales/en/notifiers/course/video_notifier/video_notifier.yml b/config/locales/en/notifiers/course/video_notifier/video_notifier.yml deleted file mode 100644 index 3898289a4bb..00000000000 --- a/config/locales/en/notifiers/course/video_notifier/video_notifier.yml +++ /dev/null @@ -1,16 +0,0 @@ -en: - notifiers: - course: - video_notifier: - opening: - course_notifications: - email: - subject: '%{course} New Video Available' - message: > - New Video Available : %{video} - closing: - user_notifications: - email: - subject: '%{course} Reminder for %{video}' - message: > - Please be reminded that %{video} is due on %{time} diff --git a/config/locales/ko/common.yml b/config/locales/ko/common.yml index 15105b55019..c1557ab832a 100644 --- a/config/locales/ko/common.yml +++ b/config/locales/ko/common.yml @@ -1,7 +1,4 @@ ko: - common: - plain_text_link: '%{text} (%{url})' - click_here: '여기를 클릭하세요' helpers: password: wrong_password: '잘못된 비밀번호' diff --git a/config/locales/ko/course/enrol_requests.yml b/config/locales/ko/course/enrol_requests.yml deleted file mode 100644 index fd33d62b262..00000000000 --- a/config/locales/ko/course/enrol_requests.yml +++ /dev/null @@ -1,5 +0,0 @@ -ko: - course: - enrol_requests: - index: - header: '사용자 요청' diff --git a/config/locales/ko/course/mailer/assessment_closing_reminder_email.yml b/config/locales/ko/course/mailer/assessment_closing_reminder_email.yml deleted file mode 100644 index 86cb628c28e..00000000000 --- a/config/locales/ko/course/mailer/assessment_closing_reminder_email.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - course: - mailer: - assessment_closing_reminder_email: - subject: '%{course}: %{assessment}에 대한 알림' - message: > - %{assessment}의 마감일이 %{time}임을 알려드립니다. - message_no_time: > - 평가 - %{assessment}을(를) 시도하고 제출하시기 바랍니다. diff --git a/config/locales/ko/course/mailer/assessment_closing_summary_email.yml b/config/locales/ko/course/mailer/assessment_closing_summary_email.yml deleted file mode 100644 index 1b7dc77a482..00000000000 --- a/config/locales/ko/course/mailer/assessment_closing_summary_email.yml +++ /dev/null @@ -1,13 +0,0 @@ -ko: - course: - mailer: - assessment_closing_summary_email: - subject: '%{course}: %{assessment}에 대한 알림' - message: > - 다음 학생들에게 %{assessment}이(가) %{time}에 마감된다는 알림 이메일이 발송되었습니다: - - %{students} - message_no_time: > - 다음 학생들에게 평가 - %{assessment}을(를) 시도하고 제출하라는 알림 이메일이 발송되었습니다: - - %{students} diff --git a/config/locales/ko/course/mailer/course_duplicate_failed_email.yml b/config/locales/ko/course/mailer/course_duplicate_failed_email.yml deleted file mode 100644 index f6932534d5d..00000000000 --- a/config/locales/ko/course/mailer/course_duplicate_failed_email.yml +++ /dev/null @@ -1,7 +0,0 @@ -ko: - course: - mailer: - course_duplicate_failed_email: - subject: '코스 복제 실패: %{original_course}' - message: > - %{original_course} 복제가 실패했습니다. 나중에 다시 시도하거나 문제가 지속되면 지원팀에 문의하세요. diff --git a/config/locales/ko/course/mailer/course_duplicated_email.yml b/config/locales/ko/course/mailer/course_duplicated_email.yml deleted file mode 100644 index c8d8c06b4d3..00000000000 --- a/config/locales/ko/course/mailer/course_duplicated_email.yml +++ /dev/null @@ -1,10 +0,0 @@ -ko: - course: - mailer: - course_duplicated_email: - subject: '코스 복제 완료: %{new_course}' - click_here: '여기를 클릭하세요' - message: > - %{original_course}의 복제가 %{new_course}로 완료되었습니다. - - 복제된 코스를 보려면 %{click_here}. diff --git a/config/locales/ko/course/mailer/course_user_deletion_failed_email.yml b/config/locales/ko/course/mailer/course_user_deletion_failed_email.yml deleted file mode 100644 index e35a88538ce..00000000000 --- a/config/locales/ko/course/mailer/course_user_deletion_failed_email.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - course: - mailer: - course_user_deletion_failed_email: - subject: '사용자 %{course_user_name}을(를) %{course_name}에서 삭제하지 못했습니다' - message: > - 사용자 %{course_user_name}을(를) %{course_name} 강좌에서 삭제하지 못했습니다. - 나중에 다시 시도하거나 문제가 지속되면 지원팀에 문의하십시오. diff --git a/config/locales/ko/course/mailer/submission_graded_email.yml b/config/locales/ko/course/mailer/submission_graded_email.yml deleted file mode 100644 index 2f25701eaea..00000000000 --- a/config/locales/ko/course/mailer/submission_graded_email.yml +++ /dev/null @@ -1,7 +0,0 @@ -ko: - course: - mailer: - submission_graded_email: - subject: '%{course}: %{assessment} 제출물이 채점되었습니다' - message: > - 성적을 보려면 %{submission}을 클릭하세요. diff --git a/config/locales/ko/course/mailer/survey_closing_reminder_email.yml b/config/locales/ko/course/mailer/survey_closing_reminder_email.yml deleted file mode 100644 index b52f4e37605..00000000000 --- a/config/locales/ko/course/mailer/survey_closing_reminder_email.yml +++ /dev/null @@ -1,7 +0,0 @@ -ko: - course: - mailer: - survey_closing_reminder_email: - subject: '%{course}: %{survey}에 대한 알림' - message: > - %{survey}가 %{time}에 만료될 예정이니 참고하시기 바랍니다. diff --git a/config/locales/ko/course/mailer/survey_closing_summary_reminder.yml b/config/locales/ko/course/mailer/survey_closing_summary_reminder.yml deleted file mode 100644 index 7195e7db395..00000000000 --- a/config/locales/ko/course/mailer/survey_closing_summary_reminder.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - course: - mailer: - survey_closing_summary_email: - subject: '%{course}: %{survey}에 대한 알림' - message: > - %{survey}가 %{time}에 만료될 것임을 알리기 위해 다음 학생들에게 이메일이 발송되었습니다: - - %{student_list} diff --git a/config/locales/ko/course/mailer/user_added_email.yml b/config/locales/ko/course/mailer/user_added_email.yml deleted file mode 100644 index ddd36c6beaa..00000000000 --- a/config/locales/ko/course/mailer/user_added_email.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - course: - mailer: - user_added_email: - subject: '%{course} 과정에 추가됨' - message: > - %{coursemology}의 %{course} 과정에 추가되었습니다. - - 과정을 보려면 %{email}로 로그인하세요. diff --git a/config/locales/ko/course/mailer/user_enrol_requested_email.yml b/config/locales/ko/course/mailer/user_enrol_requested_email.yml deleted file mode 100644 index f84f8a379a3..00000000000 --- a/config/locales/ko/course/mailer/user_enrol_requested_email.yml +++ /dev/null @@ -1,11 +0,0 @@ -ko: - course: - mailer: - user_enrol_requested_email: - subject: '%{course} 등록 요청' - recipients: '코스 관리자' - message: > - %{user}님이 %{course}에 등록을 요청했습니다. - - - 요청을 확인하고 승인하려면 %{course_requests_page}를 방문하세요. diff --git a/config/locales/ko/course/mailer/user_invitation_email.yml b/config/locales/ko/course/mailer/user_invitation_email.yml deleted file mode 100644 index 900166935e3..00000000000 --- a/config/locales/ko/course/mailer/user_invitation_email.yml +++ /dev/null @@ -1,17 +0,0 @@ -ko: - course: - mailer: - user_invitation_email: - subject: '%{course} 등록 초대' - click_here: '여기를 클릭하세요' - message: > - %{coursemology}의 %{course}에 등록하도록 초대되었습니다. - - - 이 이메일 주소(%{email})로 등록된 계정이 없는 것 같습니다; - - 계정을 생성하고 초대를 수락하려면 %{click_here}. - - - 다른 이메일로 등록된 Coursemology 계정이 있는 경우, %{course}를 방문하여 다음의 양도 불가능한 등록 코드를 사용하여 - 등록하세요: diff --git a/config/locales/ko/course/mailer/user_rejected_email.yml b/config/locales/ko/course/mailer/user_rejected_email.yml deleted file mode 100644 index ffaf60a9152..00000000000 --- a/config/locales/ko/course/mailer/user_rejected_email.yml +++ /dev/null @@ -1,7 +0,0 @@ -ko: - course: - mailer: - user_rejected_email: - subject: '강좌 등록 요청이 거부되었습니다 - %{course}' - message: > - %{coursemology}에서 %{course} 강좌에 대한 귀하의 등록 요청이 거부되었습니다! diff --git a/config/locales/ko/instance/mailer/user_added_email.yml b/config/locales/ko/instance/mailer/user_added_email.yml deleted file mode 100644 index c472f67b058..00000000000 --- a/config/locales/ko/instance/mailer/user_added_email.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - instance: - mailer: - user_added_email: - subject: '인스턴스 %{instance}에 추가됨' - message: > - 당신은 %{coursemology}의 인스턴스 %{instance}에 추가되었습니다. - - 인스턴스를 보려면 %{email}로 로그인하세요. diff --git a/config/locales/ko/instance/mailer/user_invitation_email.yml b/config/locales/ko/instance/mailer/user_invitation_email.yml deleted file mode 100644 index fb2ad6e792a..00000000000 --- a/config/locales/ko/instance/mailer/user_invitation_email.yml +++ /dev/null @@ -1,13 +0,0 @@ -ko: - instance: - mailer: - user_invitation_email: - subject: '%{instance} 인스턴스에 %{role} 역할로 초대합니다' - click_here: '여기를 클릭하세요' - message: > - %{coursemology}의 %{instance} 인스턴스에 등록하도록 초대되었습니다. - - - 이 이메일 주소(%{email})로 등록된 계정이 없는 것 같습니다; - - 계정을 생성하고 초대를 수락하려면 %{click_here} 하세요. diff --git a/config/locales/ko/layout.yml b/config/locales/ko/layout.yml index 2cf414a73a7..171b80d946b 100644 --- a/config/locales/ko/layout.yml +++ b/config/locales/ko/layout.yml @@ -1,11 +1,4 @@ ko: - layout: - coursemology: 'Coursemology' layouts: - mailer: - greeting: '안녕하세요, %{user}:' code_formatter: size_too_big: '파일이 너무 커서 표시할 수 없습니다.' - manage_email_subscription: - tag: '구독 취소' - message: '%{manage_email_subscription_link} 이 이메일 주제에서 구독을 취소합니다.' diff --git a/config/locales/ko/mailers.yml b/config/locales/ko/mailers.yml new file mode 100644 index 00000000000..4b359d55d13 --- /dev/null +++ b/config/locales/ko/mailers.yml @@ -0,0 +1,243 @@ +ko: + common: + # Shared keys used across course mailers, instance mailers, and notifiers + mailers: + anonymous_course_user: 익명 사용자 + click_here: '여기를 클릭하세요' + coursemology: 'Coursemology' + greeting: '안녕하세요, %{user}:' + manage_email_subscription: + tag: '구독 취소' + message: '%{manage_email_subscription_link} 이 이메일 주제에서 구독을 취소합니다.' + plain_text_link: '%{text} (%{url})' + phantom_course_user: '(유령)' + course: + mailer: + assessment_closing_reminder_email: + subject: '%{course}: %{assessment}에 대한 알림' + message: > + %{assessment}의 마감일이 %{time}임을 알려드립니다. + message_no_time: > + 평가 - %{assessment}을(를) 시도하고 제출하시기 바랍니다. + assessment_closing_summary_email: + subject: '%{course}: %{assessment}에 대한 알림' + message: > + 다음 학생들에게 %{assessment}이(가) %{time}에 마감된다는 알림 이메일이 발송되었습니다: + + %{students} + message_no_time: > + 다음 학생들에게 평가 - %{assessment}을(를) 시도하고 제출하라는 알림 이메일이 발송되었습니다: + + %{students} + course_duplicate_failed_email: + subject: '코스 복제 실패: %{original_course}' + message: > + %{original_course} 복제가 실패했습니다. 나중에 다시 시도하거나 문제가 지속되면 지원팀에 문의하세요. + course_duplicated_email: + subject: '코스 복제 완료: %{new_course}' + message: > + %{original_course}의 복제가 %{new_course}로 완료되었습니다. + + 복제된 코스를 보려면 %{click_here}. + course_user_deletion_failed_email: + subject: '사용자 %{course_user_name}을(를) %{course_name}에서 삭제하지 못했습니다' + message: > + 사용자 %{course_user_name}을(를) %{course_name} 강좌에서 삭제하지 못했습니다. + 나중에 다시 시도하거나 문제가 지속되면 지원팀에 문의하십시오. + submission_graded_email: + subject: '%{course}: %{assessment} 제출물이 채점되었습니다' + message: > + 성적을 보려면 %{submission}을 클릭하세요. + survey_closing_reminder_email: + subject: '%{course}: %{survey}에 대한 알림' + message: > + %{survey}가 %{time}에 만료될 예정이니 참고하시기 바랍니다. + survey_closing_summary_email: + subject: '%{course}: %{survey}에 대한 알림' + message: > + %{survey}가 %{time}에 만료될 것임을 알리기 위해 다음 학생들에게 이메일이 발송되었습니다: + + %{student_list} + user_added_email: + subject: '%{course} 과정에 추가됨' + message: > + %{coursemology}의 %{course} 과정에 추가되었습니다. + + 과정을 보려면 %{email}로 로그인하세요. + user_enrol_requested_email: + subject: '%{course} 등록 요청' + recipients: '코스 관리자' + user_requests_header: '사용자 요청' + message: > + %{user}님이 %{course}에 등록을 요청했습니다. + + + 요청을 확인하고 승인하려면 %{course_requests_page}를 방문하세요. + user_invitation_email: + subject: '%{course} 등록 초대' + message: > + %{coursemology}의 %{course}에 등록하도록 초대되었습니다. + + + 이 이메일 주소(%{email})로 등록된 계정이 없는 것 같습니다; + + 계정을 생성하고 초대를 수락하려면 %{click_here}. + + + 다른 이메일로 등록된 Coursemology 계정이 있는 경우, %{course}를 방문하여 다음의 양도 불가능한 등록 코드를 사용하여 + 등록하세요: + user_rejected_email: + subject: '강좌 등록 요청이 거부되었습니다 - %{course}' + message: > + %{coursemology}에서 %{course} 강좌에 대한 귀하의 등록 요청이 거부되었습니다! + instance: + mailer: + user_added_email: + subject: '인스턴스 %{instance}에 추가됨' + message: > + 당신은 %{coursemology}의 인스턴스 %{instance}에 추가되었습니다. + + 인스턴스를 보려면 %{email}로 로그인하세요. + + user_invitation_email: + subject: '%{instance} 인스턴스에 %{role} 역할로 초대합니다' + message: > + %{coursemology}의 %{instance} 인스턴스에 등록하도록 초대되었습니다. + + + 이 이메일 주소(%{email})로 등록된 계정이 없는 것 같습니다; + + 계정을 생성하고 초대를 수락하려면 %{click_here} 하세요. + instance_user_role_request_mailer: + new_role_request: + subject: '새로운 역할 요청!' + empty: '(지정되지 않음)' + message_html: > + %{user} (%{email})님이 %{instance} 인스턴스에서 %{role} 역할을 요청했습니다. + + 조직 + + %{organization} + + + 직함 + + %{designation} + + + 이유 + + %{reason} + + + 요청을 검토하려면 %{click_here}를 클릭하세요. + role_request_approved: + subject: '역할 요청이 승인되었습니다!' + message: > + Coursemology에서 %{role}로 승인되었습니다! + + 새 강좌를 만들고 시작하려면 %{click_here}를 클릭하세요! + role_request_rejected: + subject: '역할 요청이 거부되었습니다!' + message_empty: > + Coursemology에서 %{role}로의 역할 요청이 거부되었습니다! + message: > + Coursemology에서 %{role}로의 역할 요청이 거부되었습니다! 아래 메시지를 참조하세요: %{message} + notifiers: + course: + announcement_notifier: + new: + course_notifications: + email: + subject: '%{course} 새 공지: %{announcement}' + message: > +

%{creator}님이 %{course} 강좌에 새 공지 %{announcement}을(를) 게시했습니다

+ %{content} + assessment_notifier: + opening: + course_notifications: + email: + subject: '%{course} 새로운 평가 가능' + message: > + 새로운 평가 가능 : %{assessment} + submitted: + user_notifications: + email: + subject: '%{course} 새 제출물: %{assessment}' + message: > + %{user} 님이 새 제출물을 올렸습니다. + + %{submission}을(를) 검토하고 점수를 매겨주세요. + assessment: + answer: + comment_notifier: + annotated: + user_notifications: + email: + subject: '%{course}: %{topic}에 대한 새 주석' + message: > +

%{post_author}님이 주석을 추가했습니다: %{post}

+ +

여기에서 답장할 수 있습니다:

+ %{topic} + submission_question: + comment_notifier: + replied: + user_notifications: + email: + subject: '%{course}: %{topic}에 대한 새 댓글' + message: > +

%{post_author}님이 댓글을 남겼습니다: %{post}

+ +

여기에서 답장할 수 있습니다:

+ %{topic} + consolidated_opening_reminder_notifier: + opening_reminder: + course_notifications: + email: + subject: '%{course} 개강 알림' + message: '다음 항목이 24시간 내에 열립니다.' + course: + assessment: + section_header: '새로운 평가 가능:' + survey: + section_header: '새로운 설문조사 가능:' + video: + section_header: '새로운 비디오 가능:' + forum: + post_notifier: + replied: + user_notifications: + email: + subject: '%{course} 포럼 주제에 대한 새 답글: %{topic}' + message: > +

%{post_author}님이 답글을 남겼습니다,

+ %{post} +

여기에서 응답할 수 있습니다: '%{topic}


+ unsubscribe: + tag: '구독 취소' + message: '이 포럼 주제의 이메일 알림에서 %{unsubscribe_link}' + topic_notifier: + created: + user_notifications: + email: + subject: '%{course} 포럼에서 새 주제 생성: %{forum}' + message: > +

%{topic_author}님이 포럼에 새 주제를 생성했습니다: %{topic}


+ %{post} + unsubscribe: + tag: '구독 취소' + message: '이 포럼의 이메일 알림에서 %{unsubscribe_link}' + video_notifier: + opening: + course_notifications: + email: + subject: '%{course} 새 비디오 이용 가능' + message: > + 새 비디오 이용 가능: %{video} + closing: + user_notifications: + email: + subject: '%{course} %{video} 알림' + message: > + %{video}가 %{time}에 마감될 예정이니 참고하시기 바랍니다 diff --git a/config/locales/ko/notifiers.yml b/config/locales/ko/notifiers.yml deleted file mode 100644 index 972bae00369..00000000000 --- a/config/locales/ko/notifiers.yml +++ /dev/null @@ -1,5 +0,0 @@ -ko: - notifiers: - course: - phantom: '(팬텀)' - anonymous_user: '익명의 사용자' diff --git a/config/locales/ko/notifiers/course/announcement_notifier/new/course_notifications/email.yml b/config/locales/ko/notifiers/course/announcement_notifier/new/course_notifications/email.yml deleted file mode 100644 index 062ded15c17..00000000000 --- a/config/locales/ko/notifiers/course/announcement_notifier/new/course_notifications/email.yml +++ /dev/null @@ -1,11 +0,0 @@ -ko: - notifiers: - course: - announcement_notifier: - new: - course_notifications: - email: - subject: '%{course} 새 공지: %{announcement}' - message: > -

%{creator}님이 %{course} 강좌에 새 공지 %{announcement}을(를) 게시했습니다

- %{content} diff --git a/config/locales/ko/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml b/config/locales/ko/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml deleted file mode 100644 index a2ca62bd358..00000000000 --- a/config/locales/ko/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml +++ /dev/null @@ -1,15 +0,0 @@ -ko: - notifiers: - course: - assessment: - answer: - comment_notifier: - annotated: - user_notifications: - email: - subject: '%{course}: %{topic}에 대한 새 주석' - message: > -

%{post_author}님이 주석을 추가했습니다: %{post}

- -

여기에서 답장할 수 있습니다:

- %{topic} diff --git a/config/locales/ko/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml b/config/locales/ko/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml deleted file mode 100644 index ef6d9cf0f65..00000000000 --- a/config/locales/ko/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml +++ /dev/null @@ -1,15 +0,0 @@ -ko: - notifiers: - course: - assessment: - submission_question: - comment_notifier: - replied: - user_notifications: - email: - subject: '%{course}: %{topic}에 대한 새 댓글' - message: > -

%{post_author}님이 댓글을 남겼습니다: %{post}

- -

여기에서 답장할 수 있습니다:

- %{topic} diff --git a/config/locales/ko/notifiers/course/assessment_notifier/opening/course_notifications/email.yml b/config/locales/ko/notifiers/course/assessment_notifier/opening/course_notifications/email.yml deleted file mode 100644 index 22b92dd3779..00000000000 --- a/config/locales/ko/notifiers/course/assessment_notifier/opening/course_notifications/email.yml +++ /dev/null @@ -1,10 +0,0 @@ -ko: - notifiers: - course: - assessment_notifier: - opening: - course_notifications: - email: - subject: '%{course} 새로운 평가 가능' - message: > - 새로운 평가 가능 : %{assessment} diff --git a/config/locales/ko/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml b/config/locales/ko/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml deleted file mode 100644 index 7fbe1880286..00000000000 --- a/config/locales/ko/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml +++ /dev/null @@ -1,12 +0,0 @@ -ko: - notifiers: - course: - assessment_notifier: - submitted: - user_notifications: - email: - subject: '%{course} 새 제출물: %{assessment}' - message: > - %{user} 님이 새 제출물을 올렸습니다. - - %{submission}을(를) 검토하고 점수를 매겨주세요. diff --git a/config/locales/ko/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml b/config/locales/ko/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml deleted file mode 100644 index e9fc7b30aa0..00000000000 --- a/config/locales/ko/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml +++ /dev/null @@ -1,16 +0,0 @@ -ko: - notifiers: - course: - consolidated_opening_reminder_notifier: - opening_reminder: - course_notifications: - email: - subject: '%{course} 개강 알림' - message: '다음 항목이 24시간 내에 열립니다.' - course: - assessment: - section_header: '새로운 평가 가능:' - survey: - section_header: '새로운 설문조사 가능:' - video: - section_header: '새로운 비디오 가능:' diff --git a/config/locales/ko/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml b/config/locales/ko/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml deleted file mode 100644 index c9f339b4aa1..00000000000 --- a/config/locales/ko/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml +++ /dev/null @@ -1,16 +0,0 @@ -ko: - notifiers: - course: - forum: - post_notifier: - replied: - user_notifications: - email: - subject: '%{course} 포럼 주제에 대한 새 답글: %{topic}' - message: > -

%{post_author}님이 답글을 남겼습니다,

- %{post} -

여기에서 응답할 수 있습니다: '%{topic}


- unsubscribe: - tag: '구독 취소' - message: '이 포럼 주제의 이메일 알림에서 %{unsubscribe_link}' diff --git a/config/locales/ko/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml b/config/locales/ko/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml deleted file mode 100644 index d41af866d23..00000000000 --- a/config/locales/ko/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml +++ /dev/null @@ -1,15 +0,0 @@ -ko: - notifiers: - course: - forum: - topic_notifier: - created: - user_notifications: - email: - subject: '%{course} 포럼에서 새 주제 생성: %{forum}' - message: > -

%{topic_author}님이 포럼에 새 주제를 생성했습니다: %{topic}


- %{post} - unsubscribe: - tag: '구독 취소' - message: '이 포럼의 이메일 알림에서 %{unsubscribe_link}' diff --git a/config/locales/ko/notifiers/course/video_notifier/video_notifier.yml b/config/locales/ko/notifiers/course/video_notifier/video_notifier.yml deleted file mode 100644 index d93d20d6bcf..00000000000 --- a/config/locales/ko/notifiers/course/video_notifier/video_notifier.yml +++ /dev/null @@ -1,16 +0,0 @@ -ko: - notifiers: - course: - video_notifier: - opening: - course_notifications: - email: - subject: '%{course} 새 비디오 이용 가능' - message: > - 새 비디오 이용 가능: %{video} - closing: - user_notifications: - email: - subject: '%{course} %{video} 알림' - message: > - %{video}가 %{time}에 마감될 예정이니 참고하시기 바랍니다 diff --git a/config/locales/zh/common.yml b/config/locales/zh/common.yml index 5ccd2aeb84e..bbc16d83482 100644 --- a/config/locales/zh/common.yml +++ b/config/locales/zh/common.yml @@ -1,7 +1,4 @@ zh: - common: - plain_text_link: '%{text} (%{url})' - click_here: '点击此处' helpers: password: wrong_password: '密码错误' diff --git a/config/locales/zh/course/enrol_requests.yml b/config/locales/zh/course/enrol_requests.yml deleted file mode 100644 index ab1f73ba944..00000000000 --- a/config/locales/zh/course/enrol_requests.yml +++ /dev/null @@ -1,5 +0,0 @@ -zh: - course: - enrol_requests: - index: - header: '用户需求' diff --git a/config/locales/zh/course/mailer/assessment_closing_reminder_email.yml b/config/locales/zh/course/mailer/assessment_closing_reminder_email.yml deleted file mode 100644 index b7660c1e3b4..00000000000 --- a/config/locales/zh/course/mailer/assessment_closing_reminder_email.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - course: - mailer: - assessment_closing_reminder_email: - subject: '%{course}: 相关提醒 %{assessment}' - message: > - 请注意 %{assessment} 将截止于 %{time}。 - message_no_time: > - 请注意练习并提交 - %{assessment}。 diff --git a/config/locales/zh/course/mailer/assessment_closing_summary_email.yml b/config/locales/zh/course/mailer/assessment_closing_summary_email.yml deleted file mode 100644 index bde3f2f7b75..00000000000 --- a/config/locales/zh/course/mailer/assessment_closing_summary_email.yml +++ /dev/null @@ -1,13 +0,0 @@ -zh: - course: - mailer: - assessment_closing_summary_email: - subject: '%{course}: 相关提醒 %{assessment}' - message: > - 向以下学生发送了电子邮件,提醒他们%{assessment}将于%{time}截止: - - %{students} - message_no_time: > - 向以下学生发送了电子邮件,提醒他们练习并提交评估测验 %{assessment}: - - %{students} diff --git a/config/locales/zh/course/mailer/course_duplicate_failed_email.yml b/config/locales/zh/course/mailer/course_duplicate_failed_email.yml deleted file mode 100644 index 6ee7eb93b5e..00000000000 --- a/config/locales/zh/course/mailer/course_duplicate_failed_email.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - course: - mailer: - course_duplicate_failed_email: - subject: '课程复制失败: %{original_course}' - message: > - 复制%{original_course}失败。 - 请稍后再试,如果问题仍然存在,请联系开发人员。 diff --git a/config/locales/zh/course/mailer/course_duplicated_email.yml b/config/locales/zh/course/mailer/course_duplicated_email.yml deleted file mode 100644 index 5a2514fee56..00000000000 --- a/config/locales/zh/course/mailer/course_duplicated_email.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - course: - mailer: - course_duplicated_email: - - subject: '课程复制完成: %{new_course}' - click_here: '点击此处' - message: > - 将%{original_course}复制到%{new_course}的工作已经完成。 - - %{click_here}查看复制的课程。 diff --git a/config/locales/zh/course/mailer/course_user_deletion_failed_email.yml b/config/locales/zh/course/mailer/course_user_deletion_failed_email.yml deleted file mode 100644 index e8796eddecf..00000000000 --- a/config/locales/zh/course/mailer/course_user_deletion_failed_email.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - course: - mailer: - course_user_deletion_failed_email: - subject: '无法将用户 %{course_user_name} 从 %{course_name} 中删除' - message: > - 无法将用户 %{course_user_name} 从课程 %{course_name} 中删除。 - 请稍后再试,或者如果问题持续,请联系支持团队。 diff --git a/config/locales/zh/course/mailer/submission_graded_email.yml b/config/locales/zh/course/mailer/submission_graded_email.yml deleted file mode 100644 index a1f8c6c0cd8..00000000000 --- a/config/locales/zh/course/mailer/submission_graded_email.yml +++ /dev/null @@ -1,7 +0,0 @@ -zh: - course: - mailer: - submission_graded_email: - subject: '%{course}: 你%{assessment}的提交已被批改' - message: > - 点击%{submission}查看你的评分。 diff --git a/config/locales/zh/course/mailer/survey_closing_reminder_email.yml b/config/locales/zh/course/mailer/survey_closing_reminder_email.yml deleted file mode 100644 index d61d85cb7af..00000000000 --- a/config/locales/zh/course/mailer/survey_closing_reminder_email.yml +++ /dev/null @@ -1,7 +0,0 @@ -zh: - course: - mailer: - survey_closing_reminder_email: - subject: '%{course}: 相关提醒 %{survey}' - message: > - 请注意%{survey}将于%{time}过期。 diff --git a/config/locales/zh/course/mailer/survey_closing_summary_reminder.yml b/config/locales/zh/course/mailer/survey_closing_summary_reminder.yml deleted file mode 100644 index 4d7279e9e4b..00000000000 --- a/config/locales/zh/course/mailer/survey_closing_summary_reminder.yml +++ /dev/null @@ -1,10 +0,0 @@ -zh: - course: - mailer: - survey_closing_summary_email: - - subject: '%{course}:相关提醒%{survey}' - message: > - 我们向以下学生发送了电子邮件,提醒他们%{survey}将于%{time}过期: - - %{student_list} diff --git a/config/locales/zh/course/mailer/user_added_email.yml b/config/locales/zh/course/mailer/user_added_email.yml deleted file mode 100644 index 912a25b0632..00000000000 --- a/config/locales/zh/course/mailer/user_added_email.yml +++ /dev/null @@ -1,10 +0,0 @@ -zh: - course: - mailer: - user_added_email: - - subject: '添加至课程%{course}' - message: > - 您已被加入%{coursemology}的课程%{course}。 - - 要查看该课程,请使用%{email}登录。 diff --git a/config/locales/zh/course/mailer/user_enrol_requested_email.yml b/config/locales/zh/course/mailer/user_enrol_requested_email.yml deleted file mode 100644 index 17d9d12616a..00000000000 --- a/config/locales/zh/course/mailer/user_enrol_requested_email.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - course: - mailer: - user_enrol_requested_email: - subject: '%{course}加入申请' - recipients: '课程管理员' - message: > - %{user}申请加入课程%{course} - - - 你可以进入%{course_requests_page}来查看和处理申请。 diff --git a/config/locales/zh/course/mailer/user_invitation_email.yml b/config/locales/zh/course/mailer/user_invitation_email.yml deleted file mode 100644 index 11d760ea49a..00000000000 --- a/config/locales/zh/course/mailer/user_invitation_email.yml +++ /dev/null @@ -1,21 +0,0 @@ -zh: - course: - mailer: - user_invitation_email: - - - - - - subject: '邀请报名参加%{course}' - click_here: '点击此处' - message: > - 你被邀请加入%{coursemology}的课程%{course}。 - - - 你似乎没有在这个电子邮件地址注册的账户 (%{email}); - - %{click_here} 来创建一个账户并接受邀请。 - - 如果你已经使用另一个电子邮箱地址创建了Coursemology账户, - 查看%{course}并使用以下不可转让的注册码进行注册: diff --git a/config/locales/zh/course/mailer/user_rejected_email.yml b/config/locales/zh/course/mailer/user_rejected_email.yml deleted file mode 100644 index f34eb667157..00000000000 --- a/config/locales/zh/course/mailer/user_rejected_email.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - course: - mailer: - user_rejected_email: - subject: '课程注册请求被拒绝 - %{course}' - message: > - 你在%{coursemology}上关于%{course}的课程申请已被拒绝! - diff --git a/config/locales/zh/instance/mailer/user_added_email.yml b/config/locales/zh/instance/mailer/user_added_email.yml deleted file mode 100644 index 61cdf6281e4..00000000000 --- a/config/locales/zh/instance/mailer/user_added_email.yml +++ /dev/null @@ -1,10 +0,0 @@ -zh: - instance: - mailer: - user_added_email: - - subject: '已加入实例%{instance}' - message: > - 你已被加入%{coursemology}的实例%{instance}。 - - 要查看该实例,请用以下方式登录%{email}. diff --git a/config/locales/zh/instance/mailer/user_invitation_email.yml b/config/locales/zh/instance/mailer/user_invitation_email.yml deleted file mode 100644 index a57de46ac61..00000000000 --- a/config/locales/zh/instance/mailer/user_invitation_email.yml +++ /dev/null @@ -1,13 +0,0 @@ -zh: - instance: - mailer: - user_invitation_email: - - - - subject: '邀请以%{role}加入%{instance}实例' - click_here: '点击此处' - message: > - 你被邀请加入%{coursemology}上的实例%{instance} - 你似乎没有以这个电子邮件地址注册的账户(%{email}); - %{click_here}来创建账户并接受邀请。 diff --git a/config/locales/zh/layout.yml b/config/locales/zh/layout.yml index 4c460906839..f4c53dcd62e 100644 --- a/config/locales/zh/layout.yml +++ b/config/locales/zh/layout.yml @@ -1,11 +1,4 @@ zh: - layout: - coursemology: 'Coursemology' layouts: - mailer: - greeting: '您好,%{user}:' code_formatter: size_too_big: '文件过大,无法显示。' - manage_email_subscription: - tag: '取消订阅' - message: '%{manage_email_subscription_link} 从此电子邮件主题取消订阅。' diff --git a/config/locales/zh/mailers.yml b/config/locales/zh/mailers.yml new file mode 100644 index 00000000000..cbae983002a --- /dev/null +++ b/config/locales/zh/mailers.yml @@ -0,0 +1,246 @@ +zh: + common: + # Shared keys used across course mailers, instance mailers, and notifiers + mailers: + anonymous_course_user: 匿名用户 + click_here: '点击此处' + coursemology: 'Coursemology' + greeting: '您好,%{user}:' + manage_email_subscription: + tag: '取消订阅' + message: '%{manage_email_subscription_link} 从此电子邮件主题取消订阅。' + plain_text_link: '%{text} (%{url})' + phantom_course_user: '(幽灵)' + course: + mailer: + assessment_closing_reminder_email: + subject: '%{course}: 相关提醒 %{assessment}' + message: > + 请注意 %{assessment} 将截止于 %{time}。 + message_no_time: > + 请注意练习并提交 - %{assessment}。 + assessment_closing_summary_email: + subject: '%{course}: 相关提醒 %{assessment}' + message: > + 向以下学生发送了电子邮件,提醒他们%{assessment}将于%{time}截止: + + %{students} + message_no_time: > + 向以下学生发送了电子邮件,提醒他们练习并提交评估测验 %{assessment}: + + %{students} + course_duplicate_failed_email: + subject: '课程复制失败: %{original_course}' + message: > + 复制%{original_course}失败。 + 请稍后再试,如果问题仍然存在,请联系开发人员。 + course_duplicated_email: + subject: '课程复制完成: %{new_course}' + message: > + 将%{original_course}复制到%{new_course}的工作已经完成。 + + %{click_here}查看复制的课程。 + course_user_deletion_failed_email: + subject: '无法将用户 %{course_user_name} 从 %{course_name} 中删除' + message: > + 无法将用户 %{course_user_name} 从课程 %{course_name} 中删除。 + 请稍后再试,或者如果问题持续,请联系支持团队。 + submission_graded_email: + subject: '%{course}: 你%{assessment}的提交已被批改' + message: > + 点击%{submission}查看你的评分。 + survey_closing_reminder_email: + subject: '%{course}: 相关提醒 %{survey}' + message: > + 请注意%{survey}将于%{time}过期。 + survey_closing_summary_email: + subject: '%{course}:相关提醒%{survey}' + message: > + 我们向以下学生发送了电子邮件,提醒他们%{survey}将于%{time}过期: + + %{student_list} + user_added_email: + subject: '添加至课程%{course}' + message: > + 您已被加入%{coursemology}的课程%{course}。 + + 要查看该课程,请使用%{email}登录。 + user_enrol_requested_email: + subject: '%{course}加入申请' + recipients: '课程管理员' + user_requests_header: '用户请求' + message: > + %{user}申请加入课程%{course} + + + 你可以进入%{course_requests_page}来查看和处理申请。 + user_invitation_email: + subject: '邀请报名参加%{course}' + message: > + 你被邀请加入%{coursemology}的课程%{course}。 + + + 你似乎没有在这个电子邮件地址注册的账户 (%{email}); + + %{click_here} 来创建一个账户并接受邀请。 + + 如果你已经使用另一个电子邮箱地址创建了Coursemology账户, + 查看%{course}并使用以下不可转让的注册码进行注册: + user_rejected_email: + subject: '课程注册请求被拒绝 - %{course}' + message: > + 你在%{coursemology}上关于%{course}的课程申请已被拒绝! + + instance: + mailer: + user_added_email: + subject: '已加入实例%{instance}' + message: > + 你已被加入%{coursemology}的实例%{instance}。 + + 要查看该实例,请用以下方式登录%{email}. + + user_invitation_email: + subject: '邀请以%{role}加入%{instance}实例' + message: > + 你被邀请加入%{coursemology}上的实例%{instance} + 你似乎没有以这个电子邮件地址注册的账户(%{email}); + %{click_here}来创建账户并接受邀请。 + instance_user_role_request_mailer: + new_role_request: + subject: '新的身份变更申请!' + empty: '(未指明)' + message_html: > + %{user} (%{email})申请在%{instance}中变更身份为%{role}。 + + 组织 + + %{organization} + + + 名称 + + %{designation} + + + 理由 + + %{reason} + + + %{click_here}来查看该申请. + + role_request_approved: + subject: '你的身份变更申请已通过!' + message: > + 你已被确认为Coursemology中的%{role}! + + %{click_here}来创建一门课程并开始授课吧! + + role_request_rejected: + subject: '你的身份变更申请已被拒绝!' + message_empty: > + 您成为Coursemology上的%{role}的请求已被拒绝! + message: > + 您成为Coursemology上的%{role}的请求已被拒绝! + 请查阅以下信息: + %{message} + notifiers: + course: + announcement_notifier: + new: + course_notifications: + email: + subject: '%{course}新公告:%{announcement}' + message: > +

%{creator}在课程%{course}发布了新公告%{announcement}:

+ %{content} + assessment_notifier: + opening: + course_notifications: + email: + subject: '%{course}新的可用测验' + message: > + 新的可用测验 : %{assessment} + submitted: + user_notifications: + email: + subject: '%{course} 新提交于 : %{assessment}' + message: > + %{user} 有一个新的提交 + + 请审阅并评分 %{submission}. + assessment: + answer: + comment_notifier: + annotated: + user_notifications: + email: + subject: '%{course}:新批注%{topic}' + message: > +

%{post_author}添加了一条批注,%{post}

+ +

你可以在此处回复:

+ %{topic} + submission_question: + comment_notifier: + replied: + user_notifications: + email: + subject: '%{course}:新批注%{topic}' + message: > +

%{post_author}添加了一条批注,%{post}

+ +

你可以在此处回复:

+ %{topic} + + consolidated_opening_reminder_notifier: + opening_reminder: + course_notifications: + email: + subject: '%{course}课程提醒' + message: '以下项目将在未来24小时内开放。' + course: + assessment: + section_header: '新的可用测验:' + survey: + section_header: '新的可用调研:' + video: + section_header: '新的可用视频:' + forum: + post_notifier: + replied: + user_notifications: + email: + subject: '%{course} 对论坛主题%{topic}的新回复' + message: > +

%{post_author}回复了,

+ %{post} +

你可以在此处回复:%{topic}


+ unsubscribe: + tag: '取消订阅' + message: '%从这个论坛主题的电子邮件通知中{unsubscribe_link}' + topic_notifier: + created: + user_notifications: + email: + subject: '%{course} 在论坛%{forum}上创建的新话题' + message: > +

%{topic_author}在论坛中创建了新话题:%{topic}


+ %{post} + unsubscribe: + tag: '取消订阅' + message: '%从这个论坛主题的电子邮件通知中{unsubscribe_link}' + video_notifier: + opening: + course_notifications: + email: + subject: '%{course} 新的可用视频' + message: > + 新的可用视频 : %{video} + closing: + user_notifications: + email: + subject: '%{course} %{video} 视频提醒 ' + message: > + 请注意%{video}将于%{time}截止 diff --git a/config/locales/zh/notifiers.yml b/config/locales/zh/notifiers.yml deleted file mode 100644 index 3c2a40b0d10..00000000000 --- a/config/locales/zh/notifiers.yml +++ /dev/null @@ -1,5 +0,0 @@ -zh: - notifiers: - course: - phantom: '(旁听用户)' - anonymous_user: '一个匿名用户' diff --git a/config/locales/zh/notifiers/course/announcement_notifier/new/course_notifications/email.yml b/config/locales/zh/notifiers/course/announcement_notifier/new/course_notifications/email.yml deleted file mode 100644 index 29ed5791ced..00000000000 --- a/config/locales/zh/notifiers/course/announcement_notifier/new/course_notifications/email.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - notifiers: - course: - announcement_notifier: - new: - course_notifications: - email: - subject: '%{course}新公告:%{announcement}' - message: > -

%{creator}在课程%{course}发布了新公告%{announcement}:

- %{content} diff --git a/config/locales/zh/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml b/config/locales/zh/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml deleted file mode 100644 index a308229fe9d..00000000000 --- a/config/locales/zh/notifiers/course/assessment/answer/comment_notifier/annotated/user_notifications/email.yml +++ /dev/null @@ -1,16 +0,0 @@ -zh: - notifiers: - course: - assessment: - answer: - comment_notifier: - annotated: - user_notifications: - email: - - subject: '%{course}:新批注%{topic}' - message: > -

%{post_author}添加了一条批注,%{post}

- -

你可以在此处回复:

- %{topic} diff --git a/config/locales/zh/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml b/config/locales/zh/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml deleted file mode 100644 index e5eeb6a9f36..00000000000 --- a/config/locales/zh/notifiers/course/assessment/submission_question/comment_notifier/replied/user_notifications/email.yml +++ /dev/null @@ -1,17 +0,0 @@ -zh: - notifiers: - course: - assessment: - submission_question: - comment_notifier: - replied: - user_notifications: - email: - - subject: '%{course}:新批注%{topic}' - message: > -

%{post_author}添加了一条批注,%{post}

- -

你可以在此处回复:

- %{topic} - diff --git a/config/locales/zh/notifiers/course/assessment_notifier/opening/course_notifications/email.yml b/config/locales/zh/notifiers/course/assessment_notifier/opening/course_notifications/email.yml deleted file mode 100644 index 538a42424fb..00000000000 --- a/config/locales/zh/notifiers/course/assessment_notifier/opening/course_notifications/email.yml +++ /dev/null @@ -1,10 +0,0 @@ -zh: - notifiers: - course: - assessment_notifier: - opening: - course_notifications: - email: - subject: '%{course}新的可用测验' - message: > - 新的可用测验 : %{assessment} diff --git a/config/locales/zh/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml b/config/locales/zh/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml deleted file mode 100644 index 4d51c0de9f4..00000000000 --- a/config/locales/zh/notifiers/course/assessment_notifier/submitted/user_notifications/email.yml +++ /dev/null @@ -1,12 +0,0 @@ -zh: - notifiers: - course: - assessment_notifier: - submitted: - user_notifications: - email: - subject: '%{course} 新提交于 : %{assessment}' - message: > - %{user} 有一个新的提交 - - 请审阅并评分 %{submission}. diff --git a/config/locales/zh/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml b/config/locales/zh/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml deleted file mode 100644 index c400a06317f..00000000000 --- a/config/locales/zh/notifiers/course/consolidated_opening_reminder_notifier/opening_reminder/course_notifications/email.yml +++ /dev/null @@ -1,16 +0,0 @@ -zh: - notifiers: - course: - consolidated_opening_reminder_notifier: - opening_reminder: - course_notifications: - email: - subject: '%{course}课程提醒' - message: '以下项目将在未来24小时内开放。' - course: - assessment: - section_header: '新的可用测验:' - survey: - section_header: '新的可用调研:' - video: - section_header: '新的可用视频:' diff --git a/config/locales/zh/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml b/config/locales/zh/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml deleted file mode 100644 index d35ca2fe98e..00000000000 --- a/config/locales/zh/notifiers/course/forum/post_notifier/replied/user_notifications/email.yml +++ /dev/null @@ -1,16 +0,0 @@ -zh: - notifiers: - course: - forum: - post_notifier: - replied: - user_notifications: - email: - subject: '%{course} 对论坛主题%{topic}的新回复' - message: > -

%{post_author}回复了,

- %{post} -

你可以在此处回复:%{topic}


- unsubscribe: - tag: '取消订阅' - message: '%从这个论坛主题的电子邮件通知中{unsubscribe_link}' diff --git a/config/locales/zh/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml b/config/locales/zh/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml deleted file mode 100644 index d8cf40936bd..00000000000 --- a/config/locales/zh/notifiers/course/forum/topic_notifier/created/user_notifications/email.yml +++ /dev/null @@ -1,15 +0,0 @@ -zh: - notifiers: - course: - forum: - topic_notifier: - created: - user_notifications: - email: - subject: '%{course} 在论坛%{forum}上创建的新话题' - message: > -

%{topic_author}在论坛中创建了新话题:%{topic}


- %{post} - unsubscribe: - tag: '取消订阅' - message: '%从这个论坛主题的电子邮件通知中{unsubscribe_link}' diff --git a/config/locales/zh/notifiers/course/video_notifier/video_notifier.yml b/config/locales/zh/notifiers/course/video_notifier/video_notifier.yml deleted file mode 100644 index 56f57a9fd72..00000000000 --- a/config/locales/zh/notifiers/course/video_notifier/video_notifier.yml +++ /dev/null @@ -1,16 +0,0 @@ -zh: - notifiers: - course: - video_notifier: - opening: - course_notifications: - email: - subject: '%{course} 新的可用视频' - message: > - 新的可用视频 : %{video} - closing: - user_notifications: - email: - subject: '%{course} %{video} 视频提醒 ' - message: > - 请注意%{video}将于%{time}截止 diff --git a/spec/controllers/user/emails_controller_spec.rb b/spec/controllers/user/emails_controller_spec.rb index 4ce17138014..4e0475a0cd7 100644 --- a/spec/controllers/user/emails_controller_spec.rb +++ b/spec/controllers/user/emails_controller_spec.rb @@ -63,7 +63,7 @@ subject json_result = JSON.parse(response.body) - expect(json_result['errors']).to eq(I18n.t('user.emails.send_confirmation.already_confirmed')) + expect(json_result['errors']).to eq(I18n.t('errors.user.emails.already_confirmed')) end end diff --git a/spec/mailers/activity_mailer_spec.rb b/spec/mailers/activity_mailer_spec.rb index 99f04e68df9..d320f82c33d 100644 --- a/spec/mailers/activity_mailer_spec.rb +++ b/spec/mailers/activity_mailer_spec.rb @@ -22,9 +22,9 @@ end it 'renders the layout' do - expect(text).to include(I18n.t('layouts.mailer.greeting', user: user.name)) + expect(text).to include(I18n.t('common.mailers.greeting', user: user.name)) - expect(html).to include(I18n.t('layouts.mailer.greeting', user: user.name)) + expect(html).to include(I18n.t('common.mailers.greeting', user: user.name)) end it 'sends a multipart email' do @@ -45,7 +45,7 @@ end it 'does not render salutation and sign-off' do - expect(text).not_to include(I18n.t('layouts.mailer.greeting', user: user.name)) + expect(text).not_to include(I18n.t('common.mailers.greeting', user: user.name)) end end end From 887dba4910156ae076a27d1fb63c544b2389e7df Mon Sep 17 00:00:00 2001 From: adi-herwana-nus Date: Sun, 21 Dec 2025 22:23:32 +0800 Subject: [PATCH 3/4] feat(translations): consolidate activerecord translations --- config/locales/en/activerecord/attributes.yml | 71 ++++++ config/locales/en/activerecord/course.yml | 11 - .../en/activerecord/course/announcement.yml | 8 - .../en/activerecord/course/assessment.yml | 11 - .../activerecord/course/assessment/answer.yml | 20 -- .../course/assessment/answer/programming.yml | 8 - .../assessment/answer/text_response.yml | 8 - .../course/assessment/category.yml | 11 - .../course/assessment/question.yml | 8 - .../assessment/question/multiple_response.yml | 9 - .../question/rubric_based_response.yml | 21 -- .../assessment/question/text_response.yml | 15 -- .../text_response_comprehension_group.yml | 8 - .../text_response_comprehension_point.yml | 10 - .../text_response_comprehension_solution.yml | 10 - .../question/text_response_solution.yml | 8 - .../assessment/question_bundle_assignment.yml | 8 - .../activerecord/course/assessment/skill.yml | 8 - .../course/assessment/submission.yml | 27 -- .../en/activerecord/course/assessment/tab.yml | 11 - .../course/condition/achievement.yml | 10 - .../course/condition/assessment.yml | 14 -- .../course/condition/condition.yml | 9 - .../activerecord/course/condition/level.yml | 5 - .../condition/scholaistic_assessment.yml | 12 - .../activerecord/course/condition/survey.yml | 13 - .../activerecord/course/condition/video.yml | 13 - .../activerecord/course/discussion/post.yml | 11 - .../en/activerecord/course/enrol_request.yml | 14 -- .../course/experience_points_record.yml | 5 - .../en/activerecord/course/forum/topic.yml | 8 - .../en/activerecord/course/group_user.yml | 9 - .../course/learning_rate_record.yml | 9 - .../en/activerecord/course/lesson_plan.yml | 12 - .../course/monitoring/heartbeat.yml | 8 - .../course/monitoring/monitor.yml | 14 -- .../en/activerecord/course/personal_time.yml | 8 - .../en/activerecord/course/reference_time.yml | 12 - .../course/reference_timeline.yml | 9 - .../course/scholaistic_assessment.yml | 8 - .../en/activerecord/course/survey/answer.yml | 6 - .../activerecord/course/user_achievement.yml | 8 - .../activerecord/course/user_invitation.yml | 6 - .../locales/en/activerecord/course/video.yml | 9 - .../en/activerecord/course/video/session.yml | 8 - .../activerecord/course/video/submission.yml | 9 - .../en/activerecord/course/video/tab.yml | 11 - .../locales/en/activerecord/course_user.yml | 8 - .../en/activerecord/duplication_traceable.yml | 8 - config/locales/en/activerecord/errors.yml | 237 ++++++++++++++++++ .../en/activerecord/filename_validator.yml | 8 - .../en/activerecord/generic_announcement.yml | 8 - config/locales/en/activerecord/instance.yml | 9 - .../en/activerecord/time_zone_validator.yml | 6 - .../locales/en/course/lesson_plan/items.yml | 11 - config/locales/ko/activerecord/attributes.yml | 70 ++++++ config/locales/ko/activerecord/course.yml | 11 - .../ko/activerecord/course/announcement.yml | 8 - .../ko/activerecord/course/assessment.yml | 11 - .../activerecord/course/assessment/answer.yml | 20 -- .../course/assessment/answer/programming.yml | 8 - .../assessment/answer/text_response.yml | 8 - .../course/assessment/category.yml | 11 - .../course/assessment/question.yml | 8 - .../assessment/question/multiple_response.yml | 9 - .../question/rubric_based_response.yml | 21 -- .../assessment/question/text_response.yml | 14 -- .../text_response_comprehension_group.yml | 8 - .../text_response_comprehension_point.yml | 10 - .../text_response_comprehension_solution.yml | 10 - .../question/text_response_solution.yml | 8 - .../assessment/question_bundle_assignment.yml | 8 - .../activerecord/course/assessment/skill.yml | 8 - .../course/assessment/submission.yml | 27 -- .../ko/activerecord/course/assessment/tab.yml | 11 - .../course/condition/achievement.yml | 10 - .../course/condition/assessment.yml | 14 -- .../course/condition/condition.yml | 8 - .../activerecord/course/condition/level.yml | 5 - .../condition/scholaistic_assessment.yml | 12 - .../activerecord/course/condition/survey.yml | 13 - .../activerecord/course/condition/video.yml | 13 - .../activerecord/course/discussion/post.yml | 11 - .../ko/activerecord/course/enrol_request.yml | 13 - .../course/experience_points_record.yml | 5 - .../ko/activerecord/course/forum/topic.yml | 8 - .../ko/activerecord/course/group_user.yml | 9 - .../course/learning_rate_record.yml | 9 - .../ko/activerecord/course/lesson_plan.yml | 12 - .../course/monitoring/heartbeat.yml | 8 - .../course/monitoring/monitor.yml | 14 -- .../ko/activerecord/course/personal_time.yml | 8 - .../ko/activerecord/course/reference_time.yml | 12 - .../course/reference_timeline.yml | 9 - .../course/scholaistic_assessment.yml | 8 - .../ko/activerecord/course/survey/answer.yml | 6 - .../activerecord/course/user_achievement.yml | 8 - .../activerecord/course/user_invitation.yml | 6 - .../locales/ko/activerecord/course/video.yml | 9 - .../ko/activerecord/course/video/session.yml | 8 - .../activerecord/course/video/submission.yml | 9 - .../ko/activerecord/course/video/tab.yml | 11 - .../locales/ko/activerecord/course_user.yml | 8 - .../ko/activerecord/duplication_traceable.yml | 8 - config/locales/ko/activerecord/errors.yml | 232 +++++++++++++++++ .../ko/activerecord/filename_validator.yml | 8 - .../ko/activerecord/generic_announcement.yml | 8 - config/locales/ko/activerecord/instance.yml | 9 - .../ko/activerecord/time_zone_validator.yml | 6 - .../locales/ko/course/lesson_plan/items.yml | 11 - config/locales/zh/activerecord/attributes.yml | 70 ++++++ config/locales/zh/activerecord/course.yml | 11 - .../zh/activerecord/course/announcement.yml | 8 - .../zh/activerecord/course/assessment.yml | 11 - .../activerecord/course/assessment/answer.yml | 20 -- .../course/assessment/answer/programming.yml | 8 - .../assessment/answer/text_response.yml | 8 - .../course/assessment/category.yml | 11 - .../course/assessment/question.yml | 8 - .../assessment/question/multiple_response.yml | 9 - .../question/rubric_based_response.yml | 21 -- .../assessment/question/text_response.yml | 14 -- .../text_response_comprehension_group.yml | 8 - .../text_response_comprehension_point.yml | 10 - .../text_response_comprehension_solution.yml | 11 - .../question/text_response_solution.yml | 8 - .../assessment/question_bundle_assignment.yml | 9 - .../activerecord/course/assessment/skill.yml | 9 - .../course/assessment/submission.yml | 26 -- .../zh/activerecord/course/assessment/tab.yml | 11 - .../course/condition/achievement.yml | 10 - .../course/condition/assessment.yml | 14 -- .../course/condition/condition.yml | 8 - .../activerecord/course/condition/level.yml | 5 - .../condition/scholaistic_assessment.yml | 12 - .../activerecord/course/condition/survey.yml | 14 -- .../activerecord/course/condition/video.yml | 13 - .../activerecord/course/discussion/post.yml | 11 - .../zh/activerecord/course/enrol_request.yml | 13 - .../course/experience_points_record.yml | 5 - .../zh/activerecord/course/forum/topic.yml | 8 - .../zh/activerecord/course/group_user.yml | 9 - .../course/learning_rate_record.yml | 9 - .../zh/activerecord/course/lesson_plan.yml | 12 - .../course/monitoring/heartbeat.yml | 8 - .../course/monitoring/monitor.yml | 14 -- .../zh/activerecord/course/personal_time.yml | 8 - .../zh/activerecord/course/reference_time.yml | 12 - .../course/reference_timeline.yml | 9 - .../course/scholaistic_assessment.yml | 8 - .../zh/activerecord/course/survey/answer.yml | 6 - .../activerecord/course/user_achievement.yml | 8 - .../activerecord/course/user_invitation.yml | 6 - .../locales/zh/activerecord/course/video.yml | 9 - .../zh/activerecord/course/video/session.yml | 8 - .../activerecord/course/video/submission.yml | 9 - .../zh/activerecord/course/video/tab.yml | 11 - .../locales/zh/activerecord/course_user.yml | 8 - .../zh/activerecord/duplication_traceable.yml | 8 - config/locales/zh/activerecord/errors.yml | 231 +++++++++++++++++ .../zh/activerecord/filename_validator.yml | 8 - .../zh/activerecord/generic_announcement.yml | 8 - config/locales/zh/activerecord/instance.yml | 9 - .../zh/activerecord/time_zone_validator.yml | 6 - .../locales/zh/course/lesson_plan/items.yml | 11 - 165 files changed, 911 insertions(+), 1611 deletions(-) create mode 100644 config/locales/en/activerecord/attributes.yml delete mode 100644 config/locales/en/activerecord/course.yml delete mode 100644 config/locales/en/activerecord/course/announcement.yml delete mode 100644 config/locales/en/activerecord/course/assessment.yml delete mode 100644 config/locales/en/activerecord/course/assessment/answer.yml delete mode 100644 config/locales/en/activerecord/course/assessment/answer/programming.yml delete mode 100644 config/locales/en/activerecord/course/assessment/answer/text_response.yml delete mode 100644 config/locales/en/activerecord/course/assessment/category.yml delete mode 100644 config/locales/en/activerecord/course/assessment/question.yml delete mode 100644 config/locales/en/activerecord/course/assessment/question/multiple_response.yml delete mode 100644 config/locales/en/activerecord/course/assessment/question/rubric_based_response.yml delete mode 100644 config/locales/en/activerecord/course/assessment/question/text_response.yml delete mode 100644 config/locales/en/activerecord/course/assessment/question/text_response_comprehension_group.yml delete mode 100644 config/locales/en/activerecord/course/assessment/question/text_response_comprehension_point.yml delete mode 100644 config/locales/en/activerecord/course/assessment/question/text_response_comprehension_solution.yml delete mode 100644 config/locales/en/activerecord/course/assessment/question/text_response_solution.yml delete mode 100644 config/locales/en/activerecord/course/assessment/question_bundle_assignment.yml delete mode 100644 config/locales/en/activerecord/course/assessment/skill.yml delete mode 100644 config/locales/en/activerecord/course/assessment/submission.yml delete mode 100644 config/locales/en/activerecord/course/assessment/tab.yml delete mode 100644 config/locales/en/activerecord/course/condition/achievement.yml delete mode 100644 config/locales/en/activerecord/course/condition/assessment.yml delete mode 100644 config/locales/en/activerecord/course/condition/condition.yml delete mode 100644 config/locales/en/activerecord/course/condition/level.yml delete mode 100644 config/locales/en/activerecord/course/condition/scholaistic_assessment.yml delete mode 100644 config/locales/en/activerecord/course/condition/survey.yml delete mode 100644 config/locales/en/activerecord/course/condition/video.yml delete mode 100644 config/locales/en/activerecord/course/discussion/post.yml delete mode 100644 config/locales/en/activerecord/course/enrol_request.yml delete mode 100644 config/locales/en/activerecord/course/experience_points_record.yml delete mode 100644 config/locales/en/activerecord/course/forum/topic.yml delete mode 100644 config/locales/en/activerecord/course/group_user.yml delete mode 100644 config/locales/en/activerecord/course/learning_rate_record.yml delete mode 100644 config/locales/en/activerecord/course/lesson_plan.yml delete mode 100644 config/locales/en/activerecord/course/monitoring/heartbeat.yml delete mode 100644 config/locales/en/activerecord/course/monitoring/monitor.yml delete mode 100644 config/locales/en/activerecord/course/personal_time.yml delete mode 100644 config/locales/en/activerecord/course/reference_time.yml delete mode 100644 config/locales/en/activerecord/course/reference_timeline.yml delete mode 100644 config/locales/en/activerecord/course/scholaistic_assessment.yml delete mode 100644 config/locales/en/activerecord/course/survey/answer.yml delete mode 100644 config/locales/en/activerecord/course/user_achievement.yml delete mode 100644 config/locales/en/activerecord/course/user_invitation.yml delete mode 100644 config/locales/en/activerecord/course/video.yml delete mode 100644 config/locales/en/activerecord/course/video/session.yml delete mode 100644 config/locales/en/activerecord/course/video/submission.yml delete mode 100644 config/locales/en/activerecord/course/video/tab.yml delete mode 100644 config/locales/en/activerecord/course_user.yml delete mode 100644 config/locales/en/activerecord/duplication_traceable.yml create mode 100644 config/locales/en/activerecord/errors.yml delete mode 100644 config/locales/en/activerecord/filename_validator.yml delete mode 100644 config/locales/en/activerecord/generic_announcement.yml delete mode 100644 config/locales/en/activerecord/instance.yml delete mode 100644 config/locales/en/activerecord/time_zone_validator.yml delete mode 100644 config/locales/en/course/lesson_plan/items.yml create mode 100644 config/locales/ko/activerecord/attributes.yml delete mode 100644 config/locales/ko/activerecord/course.yml delete mode 100644 config/locales/ko/activerecord/course/announcement.yml delete mode 100644 config/locales/ko/activerecord/course/assessment.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/answer.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/answer/programming.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/answer/text_response.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/category.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/question.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/question/multiple_response.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/question/rubric_based_response.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/question/text_response.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_group.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_point.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_solution.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/question/text_response_solution.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/question_bundle_assignment.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/skill.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/submission.yml delete mode 100644 config/locales/ko/activerecord/course/assessment/tab.yml delete mode 100644 config/locales/ko/activerecord/course/condition/achievement.yml delete mode 100644 config/locales/ko/activerecord/course/condition/assessment.yml delete mode 100644 config/locales/ko/activerecord/course/condition/condition.yml delete mode 100644 config/locales/ko/activerecord/course/condition/level.yml delete mode 100644 config/locales/ko/activerecord/course/condition/scholaistic_assessment.yml delete mode 100644 config/locales/ko/activerecord/course/condition/survey.yml delete mode 100644 config/locales/ko/activerecord/course/condition/video.yml delete mode 100644 config/locales/ko/activerecord/course/discussion/post.yml delete mode 100644 config/locales/ko/activerecord/course/enrol_request.yml delete mode 100644 config/locales/ko/activerecord/course/experience_points_record.yml delete mode 100644 config/locales/ko/activerecord/course/forum/topic.yml delete mode 100644 config/locales/ko/activerecord/course/group_user.yml delete mode 100644 config/locales/ko/activerecord/course/learning_rate_record.yml delete mode 100644 config/locales/ko/activerecord/course/lesson_plan.yml delete mode 100644 config/locales/ko/activerecord/course/monitoring/heartbeat.yml delete mode 100644 config/locales/ko/activerecord/course/monitoring/monitor.yml delete mode 100644 config/locales/ko/activerecord/course/personal_time.yml delete mode 100644 config/locales/ko/activerecord/course/reference_time.yml delete mode 100644 config/locales/ko/activerecord/course/reference_timeline.yml delete mode 100644 config/locales/ko/activerecord/course/scholaistic_assessment.yml delete mode 100644 config/locales/ko/activerecord/course/survey/answer.yml delete mode 100644 config/locales/ko/activerecord/course/user_achievement.yml delete mode 100644 config/locales/ko/activerecord/course/user_invitation.yml delete mode 100644 config/locales/ko/activerecord/course/video.yml delete mode 100644 config/locales/ko/activerecord/course/video/session.yml delete mode 100644 config/locales/ko/activerecord/course/video/submission.yml delete mode 100644 config/locales/ko/activerecord/course/video/tab.yml delete mode 100644 config/locales/ko/activerecord/course_user.yml delete mode 100644 config/locales/ko/activerecord/duplication_traceable.yml create mode 100644 config/locales/ko/activerecord/errors.yml delete mode 100644 config/locales/ko/activerecord/filename_validator.yml delete mode 100644 config/locales/ko/activerecord/generic_announcement.yml delete mode 100644 config/locales/ko/activerecord/instance.yml delete mode 100644 config/locales/ko/activerecord/time_zone_validator.yml delete mode 100644 config/locales/ko/course/lesson_plan/items.yml create mode 100644 config/locales/zh/activerecord/attributes.yml delete mode 100644 config/locales/zh/activerecord/course.yml delete mode 100644 config/locales/zh/activerecord/course/announcement.yml delete mode 100644 config/locales/zh/activerecord/course/assessment.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/answer.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/answer/programming.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/answer/text_response.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/category.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/question.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/question/multiple_response.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/question/rubric_based_response.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/question/text_response.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_group.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_point.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_solution.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/question/text_response_solution.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/question_bundle_assignment.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/skill.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/submission.yml delete mode 100644 config/locales/zh/activerecord/course/assessment/tab.yml delete mode 100644 config/locales/zh/activerecord/course/condition/achievement.yml delete mode 100644 config/locales/zh/activerecord/course/condition/assessment.yml delete mode 100644 config/locales/zh/activerecord/course/condition/condition.yml delete mode 100644 config/locales/zh/activerecord/course/condition/level.yml delete mode 100644 config/locales/zh/activerecord/course/condition/scholaistic_assessment.yml delete mode 100644 config/locales/zh/activerecord/course/condition/survey.yml delete mode 100644 config/locales/zh/activerecord/course/condition/video.yml delete mode 100644 config/locales/zh/activerecord/course/discussion/post.yml delete mode 100644 config/locales/zh/activerecord/course/enrol_request.yml delete mode 100644 config/locales/zh/activerecord/course/experience_points_record.yml delete mode 100644 config/locales/zh/activerecord/course/forum/topic.yml delete mode 100644 config/locales/zh/activerecord/course/group_user.yml delete mode 100644 config/locales/zh/activerecord/course/learning_rate_record.yml delete mode 100644 config/locales/zh/activerecord/course/lesson_plan.yml delete mode 100644 config/locales/zh/activerecord/course/monitoring/heartbeat.yml delete mode 100644 config/locales/zh/activerecord/course/monitoring/monitor.yml delete mode 100644 config/locales/zh/activerecord/course/personal_time.yml delete mode 100644 config/locales/zh/activerecord/course/reference_time.yml delete mode 100644 config/locales/zh/activerecord/course/reference_timeline.yml delete mode 100644 config/locales/zh/activerecord/course/scholaistic_assessment.yml delete mode 100644 config/locales/zh/activerecord/course/survey/answer.yml delete mode 100644 config/locales/zh/activerecord/course/user_achievement.yml delete mode 100644 config/locales/zh/activerecord/course/user_invitation.yml delete mode 100644 config/locales/zh/activerecord/course/video.yml delete mode 100644 config/locales/zh/activerecord/course/video/session.yml delete mode 100644 config/locales/zh/activerecord/course/video/submission.yml delete mode 100644 config/locales/zh/activerecord/course/video/tab.yml delete mode 100644 config/locales/zh/activerecord/course_user.yml delete mode 100644 config/locales/zh/activerecord/duplication_traceable.yml create mode 100644 config/locales/zh/activerecord/errors.yml delete mode 100644 config/locales/zh/activerecord/filename_validator.yml delete mode 100644 config/locales/zh/activerecord/generic_announcement.yml delete mode 100644 config/locales/zh/activerecord/instance.yml delete mode 100644 config/locales/zh/activerecord/time_zone_validator.yml delete mode 100644 config/locales/zh/course/lesson_plan/items.yml diff --git a/config/locales/en/activerecord/attributes.yml b/config/locales/en/activerecord/attributes.yml new file mode 100644 index 00000000000..f5586333528 --- /dev/null +++ b/config/locales/en/activerecord/attributes.yml @@ -0,0 +1,71 @@ +en: + activerecord: + course/assessment/question: + question_number: 'Question %{index}' + question_with_title: '%{question_number}: %{title}' + attributes: + course: + reference_timelines: 'Reference timelines' + course/assessment/answer: + submitted_at: 'Submitted At' + grade: 'Grade' + grader: 'Grader' + graded_at: 'Graded At' + course/assessment/category: + weight: 'Order' + course/assessment/category/title: + default: 'Assessments' + course/assessment/question: + weight: 'Order' + course/assessment/submission: + grade: 'Total Grade' + status: 'Status' + submitted_at: :'activerecord.attributes.course/assessment/answer.submitted_at' + grader: :'activerecord.attributes.course/assessment/answer.grader' + graded_at: :'activerecord.attributes.course/assessment/answer.graded_at' + attempting: 'Attempting' + submitted: 'Submitted' + graded: 'Graded, unpublished' + published: 'Graded' + course/assessment/tab: + weight: 'Order' + course/assessment/tab/title: + default: 'Default' + course/condition/assessment/title: + minimum_score: 'Score at least %{minimum_grade_percentage} for %{assessment_title}' + complete: 'Complete %{assessment_title}' + course/condition/level/title: + title: 'Level %{value}' + course/condition/scholaistic_assessment/title: + complete: 'Complete %{title}' + course/condition/survey/title: + complete: 'Complete %{survey_title}' + course/condition/video/title: + complete: 'Watch %{video_title}' + course/discussion/post: + title_reply_template: 'Re: %{title}' + course/experience_points_record: + points_awarded: 'EXP Awarded' + course/forum/topic/topic_type: + normal: 'Normal' + announcement: 'Announcement' + question: 'Question' + sticky: 'Sticky' + course/group_user: + manager: 'Tutor' + course/lesson_plan/item: + base_exp: 'Experience Points' + time_bonus_exp: 'Bonus Experience Points' + reference_times: 'Reference times' + course/video/tab: + weight: 'Order' + course/video/tab/title: + default: 'Default' + models: + course/assessment/question/rubric_based_response: + rubric_based_response: 'Rubric Based Response Question' + course/assessment/question/text_response: + text_response: 'Text Response Question' + file_upload: 'File Upload Question' + comprehension: 'Comprehension Question' + diff --git a/config/locales/en/activerecord/course.yml b/config/locales/en/activerecord/course.yml deleted file mode 100644 index de59c22b12f..00000000000 --- a/config/locales/en/activerecord/course.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - activerecord: - attributes: - course: - reference_timelines: 'Reference timelines' - errors: - models: - course: - attributes: - reference_timelines: - must_have_at_most_one_default: 'must have at most one default' diff --git a/config/locales/en/activerecord/course/announcement.yml b/config/locales/en/activerecord/course/announcement.yml deleted file mode 100644 index 9e7e5d69876..00000000000 --- a/config/locales/en/activerecord/course/announcement.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/announcement: - attributes: - end_at: - cannot_be_before_start_at: 'cannot be before start at' diff --git a/config/locales/en/activerecord/course/assessment.yml b/config/locales/en/activerecord/course/assessment.yml deleted file mode 100644 index b0a580617a3..00000000000 --- a/config/locales/en/activerecord/course/assessment.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment: - attributes: - tab: - not_in_same_course: > - The tab that you have selected is not in the same course as the assessment - no_test_type_chosen: > - At least one type of test case must be selected for grade and exp calculation diff --git a/config/locales/en/activerecord/course/assessment/answer.yml b/config/locales/en/activerecord/course/assessment/answer.yml deleted file mode 100644 index fcff7a422b6..00000000000 --- a/config/locales/en/activerecord/course/assessment/answer.yml +++ /dev/null @@ -1,20 +0,0 @@ -en: - activerecord: - attributes: - course/assessment/answer: - submitted_at: 'Submitted At' - grade: 'Grade' - grader: 'Grader' - graded_at: 'Graded At' - errors: - models: - course/assessment/answer: - attributes: - question: - consistent_assessment: 'must belong to the same assessment' - submission: - attemptable_state: 'must be in the attempting state' - grade: - no_blank_grade: 'Grade must not be empty if it is already graded' - consistent_grade: 'must be less than question maximum grade' - non_negative_grade: 'cannot be negative' diff --git a/config/locales/en/activerecord/course/assessment/answer/programming.yml b/config/locales/en/activerecord/course/assessment/answer/programming.yml deleted file mode 100644 index db5c897bad2..00000000000 --- a/config/locales/en/activerecord/course/assessment/answer/programming.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment/answer/programming: - attributes: - files: - exceed_size_limit: 'Your answer (%{total_size_mb} MB) must be less than 2 MB.' diff --git a/config/locales/en/activerecord/course/assessment/answer/text_response.yml b/config/locales/en/activerecord/course/assessment/answer/text_response.yml deleted file mode 100644 index b894a672e4c..00000000000 --- a/config/locales/en/activerecord/course/assessment/answer/text_response.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment/answer/text_response: - attributes: - attachments: - unique: 'File names must be unique' diff --git a/config/locales/en/activerecord/course/assessment/category.yml b/config/locales/en/activerecord/course/assessment/category.yml deleted file mode 100644 index e68ddd6b344..00000000000 --- a/config/locales/en/activerecord/course/assessment/category.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - activerecord: - attributes: - course/assessment/category/title: - default: 'Assessments' - course/assessment/category: - weight: 'Order' - errors: - models: - course/assessment/category: - deletion: 'the last category cannot be deleted' diff --git a/config/locales/en/activerecord/course/assessment/question.yml b/config/locales/en/activerecord/course/assessment/question.yml deleted file mode 100644 index 738c29bf627..00000000000 --- a/config/locales/en/activerecord/course/assessment/question.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - course/assessment/question: - question_number: 'Question %{index}' - question_with_title: '%{question_number}: %{title}' - attributes: - course/assessment/question: - weight: 'Order' diff --git a/config/locales/en/activerecord/course/assessment/question/multiple_response.yml b/config/locales/en/activerecord/course/assessment/question/multiple_response.yml deleted file mode 100644 index 59b4106b199..00000000000 --- a/config/locales/en/activerecord/course/assessment/question/multiple_response.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment/question/multiple_response: - attributes: - options: - no_option: 'must contain at least one option.' - no_correct_option: 'must contain at least one correct option.' diff --git a/config/locales/en/activerecord/course/assessment/question/rubric_based_response.yml b/config/locales/en/activerecord/course/assessment/question/rubric_based_response.yml deleted file mode 100644 index d756d478d6d..00000000000 --- a/config/locales/en/activerecord/course/assessment/question/rubric_based_response.yml +++ /dev/null @@ -1,21 +0,0 @@ -en: - activerecord: - attributes: - models: - course/assessment/question/rubric_based_response: - rubric_based_response: 'Rubric Based Response Question' - errors: - models: - 'course/assessment/question/rubric_based_response': - attributes: - categories: - reserved_category_name: 'Moderation is a reserved category name, and hence cannot be used' - duplicate_category_names: 'Category names must be unique within the question rubric' - at_least_one_category: 'At least one rubric category is required' - 'course/assessment/question/rubric_based_response_category': - attributes: - criterions: - duplicate_grades_within_category: 'Grade must be unique within the category' - at_least_one_grade: 'At least one grade is required within each category' - grade_zero_missing: 'Grade 0 must be present for each category' - grade_higher_than_maximum_grade: 'Grade must be less than or equal to the maximum grade' diff --git a/config/locales/en/activerecord/course/assessment/question/text_response.yml b/config/locales/en/activerecord/course/assessment/question/text_response.yml deleted file mode 100644 index ff944b5a542..00000000000 --- a/config/locales/en/activerecord/course/assessment/question/text_response.yml +++ /dev/null @@ -1,15 +0,0 @@ -en: - activerecord: - attributes: - models: - course/assessment/question/text_response: - text_response: 'Text Response Question' - file_upload: 'File Upload Question' - comprehension: 'Comprehension Question' - errors: - models: - course/assessment/question/text_response: - attributes: - maximum_grade: - invalid_grade: 'must be no less than the grade of any solution' - diff --git a/config/locales/en/activerecord/course/assessment/question/text_response_comprehension_group.yml b/config/locales/en/activerecord/course/assessment/question/text_response_comprehension_group.yml deleted file mode 100644 index cdb8dc49103..00000000000 --- a/config/locales/en/activerecord/course/assessment/question/text_response_comprehension_group.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment/question/text_response_comprehension_group: - attributes: - maximum_group_grade: - invalid_group_grade: 'must be no more than the maximum grade of the question' diff --git a/config/locales/en/activerecord/course/assessment/question/text_response_comprehension_point.yml b/config/locales/en/activerecord/course/assessment/question/text_response_comprehension_point.yml deleted file mode 100644 index 98e2c17b5ac..00000000000 --- a/config/locales/en/activerecord/course/assessment/question/text_response_comprehension_point.yml +++ /dev/null @@ -1,10 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment/question/text_response_comprehension_point: - attributes: - point_grade: - invalid_point_grade: 'must be no more than the maximum grade of the group' - solutions: - more_than_one_compre_lifted_word_solution: 'all lifted words for a same point are to be placed together in one row' diff --git a/config/locales/en/activerecord/course/assessment/question/text_response_comprehension_solution.yml b/config/locales/en/activerecord/course/assessment/question/text_response_comprehension_solution.yml deleted file mode 100644 index 7efae8fe781..00000000000 --- a/config/locales/en/activerecord/course/assessment/question/text_response_comprehension_solution.yml +++ /dev/null @@ -1,10 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment/question/text_response_comprehension_solution: - attributes: - solution_lemma: - solution_lemma_empty: "couldn't generate any lemma form: please check your spelling" - information: - information_empty: "can't be blank for keyword solution" diff --git a/config/locales/en/activerecord/course/assessment/question/text_response_solution.yml b/config/locales/en/activerecord/course/assessment/question/text_response_solution.yml deleted file mode 100644 index ff20e1f2a9b..00000000000 --- a/config/locales/en/activerecord/course/assessment/question/text_response_solution.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment/question/text_response_solution: - attributes: - grade: - invalid_grade: 'must be no more than the maximum grade of the question' diff --git a/config/locales/en/activerecord/course/assessment/question_bundle_assignment.yml b/config/locales/en/activerecord/course/assessment/question_bundle_assignment.yml deleted file mode 100644 index c32f609a92a..00000000000 --- a/config/locales/en/activerecord/course/assessment/question_bundle_assignment.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment/question_bundle_assignment: - attributes: - submission: - must_belong_to_assessment_and_user: 'must belong to assessment and user' diff --git a/config/locales/en/activerecord/course/assessment/skill.yml b/config/locales/en/activerecord/course/assessment/skill.yml deleted file mode 100644 index 0fd907b9664..00000000000 --- a/config/locales/en/activerecord/course/assessment/skill.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/assessment/skill: - attributes: - course: - consistent_course: 'must belong to the same course' diff --git a/config/locales/en/activerecord/course/assessment/submission.yml b/config/locales/en/activerecord/course/assessment/submission.yml deleted file mode 100644 index d87b7df1afb..00000000000 --- a/config/locales/en/activerecord/course/assessment/submission.yml +++ /dev/null @@ -1,27 +0,0 @@ -en: - activerecord: - attributes: - course/assessment/submission: - grade: 'Total Grade' - status: 'Status' - submitted_at: :'activerecord.attributes.course/assessment/answer.submitted_at' - grader: :'activerecord.attributes.course/assessment/answer.grader' - graded_at: :'activerecord.attributes.course/assessment/answer.graded_at' - attempting: 'Attempting' - submitted: 'Submitted' - graded: 'Graded, unpublished' - published: 'Graded' - errors: - models: - course/assessment/submission: - attributes: - experience_points_record: - inconsistent_user: 'creator must be the same as the course user record' - absent_award_attributes: > - there is no award attributes for your submission, please try again - or contact the Coursemology team - submission_already_exists: 'Looks like you have already created a submission. Try again?' - no_bundles_assigned: 'There are no question bundles assigned for you. Contact your instructor for assistance.' - autograded_no_partial_answer: 'There are updated answers which have not been re-submitted yet. Please re-submit all answers before finalising your submission.' - course/assessment/category: - deletion: 'the last category cannot be deleted' diff --git a/config/locales/en/activerecord/course/assessment/tab.yml b/config/locales/en/activerecord/course/assessment/tab.yml deleted file mode 100644 index 22201d41240..00000000000 --- a/config/locales/en/activerecord/course/assessment/tab.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - activerecord: - attributes: - course/assessment/tab/title: - default: 'Default' - course/assessment/tab: - weight: 'Order' - errors: - models: - course/assessment/tab: - deletion: 'the last tab cannot be deleted' diff --git a/config/locales/en/activerecord/course/condition/achievement.yml b/config/locales/en/activerecord/course/condition/achievement.yml deleted file mode 100644 index 4f7000d9af2..00000000000 --- a/config/locales/en/activerecord/course/condition/achievement.yml +++ /dev/null @@ -1,10 +0,0 @@ -en: - activerecord: - errors: - models: - course/condition/achievement: - attributes: - achievement: - unique_dependency: 'cannot have duplicate conditions' - references_self: 'cannot have itself as a condition' - cyclic_dependency: 'cannot have cyclic dependency' diff --git a/config/locales/en/activerecord/course/condition/assessment.yml b/config/locales/en/activerecord/course/condition/assessment.yml deleted file mode 100644 index 301aa1370e9..00000000000 --- a/config/locales/en/activerecord/course/condition/assessment.yml +++ /dev/null @@ -1,14 +0,0 @@ -en: - activerecord: - attributes: - course/condition/assessment/title: - minimum_score: 'Score at least %{minimum_grade_percentage} for %{assessment_title}' - complete: 'Complete %{assessment_title}' - errors: - models: - course/condition/assessment: - attributes: - assessment: - unique_dependency: 'cannot have duplicate conditions' - references_self: 'cannot have itself as condition' - cyclic_dependency: 'cannot have cyclic dependency' diff --git a/config/locales/en/activerecord/course/condition/condition.yml b/config/locales/en/activerecord/course/condition/condition.yml deleted file mode 100644 index bd8128b4049..00000000000 --- a/config/locales/en/activerecord/course/condition/condition.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - activerecord: - errors: - models: - course/condition: - attributes: - conditional: - not_in_same_course: > - The conditional that you have selected is not in the same course as the current condition diff --git a/config/locales/en/activerecord/course/condition/level.yml b/config/locales/en/activerecord/course/condition/level.yml deleted file mode 100644 index e4116a61cb5..00000000000 --- a/config/locales/en/activerecord/course/condition/level.yml +++ /dev/null @@ -1,5 +0,0 @@ -en: - activerecord: - attributes: - course/condition/level/title: - title: 'Level %{value}' diff --git a/config/locales/en/activerecord/course/condition/scholaistic_assessment.yml b/config/locales/en/activerecord/course/condition/scholaistic_assessment.yml deleted file mode 100644 index 5fcfcfb4e04..00000000000 --- a/config/locales/en/activerecord/course/condition/scholaistic_assessment.yml +++ /dev/null @@ -1,12 +0,0 @@ -en: - activerecord: - attributes: - course/condition/scholaistic_assessment/title: - complete: 'Complete %{title}' - errors: - models: - course/condition/scholaistic_assessment: - attributes: - scholaistic_assessment: - unique_dependency: 'cannot have duplicate conditions' - references_self: 'cannot have itself as condition' diff --git a/config/locales/en/activerecord/course/condition/survey.yml b/config/locales/en/activerecord/course/condition/survey.yml deleted file mode 100644 index 7a79cfc4e44..00000000000 --- a/config/locales/en/activerecord/course/condition/survey.yml +++ /dev/null @@ -1,13 +0,0 @@ -en: - activerecord: - attributes: - course/condition/survey/title: - complete: 'Complete %{survey_title}' - errors: - models: - course/condition/survey: - attributes: - survey: - unique_dependency: 'cannot have duplicate conditions' - references_self: 'cannot have itself as condition' - cyclic_dependency: 'cannot have cyclic dependency' diff --git a/config/locales/en/activerecord/course/condition/video.yml b/config/locales/en/activerecord/course/condition/video.yml deleted file mode 100644 index a7365c5409b..00000000000 --- a/config/locales/en/activerecord/course/condition/video.yml +++ /dev/null @@ -1,13 +0,0 @@ -en: - activerecord: - attributes: - course/condition/video/title: - complete: 'Watch %{video_title}' - errors: - models: - course/condition/video: - attributes: - video: - unique_dependency: 'cannot have duplicate conditions' - references_self: 'cannot have itself as condition' - cyclic_dependency: 'cannot have cyclic dependency' diff --git a/config/locales/en/activerecord/course/discussion/post.yml b/config/locales/en/activerecord/course/discussion/post.yml deleted file mode 100644 index a2f3d2fe8ce..00000000000 --- a/config/locales/en/activerecord/course/discussion/post.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - activerecord: - attributes: - course/discussion/post: - title_reply_template: 'Re: %{title}' - errors: - models: - course/discussion/post: - attributes: - post: - topic_inconsistent: 'The post and its parent post reference a different topic.' diff --git a/config/locales/en/activerecord/course/enrol_request.yml b/config/locales/en/activerecord/course/enrol_request.yml deleted file mode 100644 index 21c8a1138ce..00000000000 --- a/config/locales/en/activerecord/course/enrol_request.yml +++ /dev/null @@ -1,14 +0,0 @@ -en: - activerecord: - errors: - models: - course/enrol_request: - user_in_course: > - It seems like you are already enrolled in the course. - Please try refreshing the page? - existing_pending_request: > - It seems like you have already submitted an enrolment request. - attributes: - base: - deletion: > - Unable to cancel your enrolment request as it has been processed. diff --git a/config/locales/en/activerecord/course/experience_points_record.yml b/config/locales/en/activerecord/course/experience_points_record.yml deleted file mode 100644 index 302b6560690..00000000000 --- a/config/locales/en/activerecord/course/experience_points_record.yml +++ /dev/null @@ -1,5 +0,0 @@ -en: - activerecord: - attributes: - course/experience_points_record: - points_awarded: 'EXP Awarded' diff --git a/config/locales/en/activerecord/course/forum/topic.yml b/config/locales/en/activerecord/course/forum/topic.yml deleted file mode 100644 index 3051e2c033a..00000000000 --- a/config/locales/en/activerecord/course/forum/topic.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - attributes: - course/forum/topic/topic_type: - normal: 'Normal' - announcement: 'Announcement' - question: 'Question' - sticky: 'Sticky' diff --git a/config/locales/en/activerecord/course/group_user.yml b/config/locales/en/activerecord/course/group_user.yml deleted file mode 100644 index d8ba2bb9b0c..00000000000 --- a/config/locales/en/activerecord/course/group_user.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - activerecord: - errors: - models: - course/group_user: - not_enrolled: 'must be enrolled in same course as group' - attributes: - course/group_user: - manager: 'Tutor' diff --git a/config/locales/en/activerecord/course/learning_rate_record.yml b/config/locales/en/activerecord/course/learning_rate_record.yml deleted file mode 100644 index 315067b7d7b..00000000000 --- a/config/locales/en/activerecord/course/learning_rate_record.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - activerecord: - errors: - models: - course/learning_rate_record: - attributes: - learning_rate: - less_than_min: 'is not >= effective_min' - greater_than_max: 'is not <= effective_max' diff --git a/config/locales/en/activerecord/course/lesson_plan.yml b/config/locales/en/activerecord/course/lesson_plan.yml deleted file mode 100644 index 9dbaa132e65..00000000000 --- a/config/locales/en/activerecord/course/lesson_plan.yml +++ /dev/null @@ -1,12 +0,0 @@ -en: - activerecord: - errors: - models: - course/lesson_plan/item: - attributes: - bonus_end_at: - required: 'cannot be blank if time bonus exp is set' - attributes: - course/lesson_plan/item: - base_exp: 'Experience Points' - time_bonus_exp: 'Bonus Experience Points' diff --git a/config/locales/en/activerecord/course/monitoring/heartbeat.yml b/config/locales/en/activerecord/course/monitoring/heartbeat.yml deleted file mode 100644 index 6d82cb59cbe..00000000000 --- a/config/locales/en/activerecord/course/monitoring/heartbeat.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/monitoring/heartbeat: - attributes: - seb_payload: - invalid_seb_payload: 'seb payload must be either blank or a valid json object' diff --git a/config/locales/en/activerecord/course/monitoring/monitor.yml b/config/locales/en/activerecord/course/monitoring/monitor.yml deleted file mode 100644 index cfac223ccd7..00000000000 --- a/config/locales/en/activerecord/course/monitoring/monitor.yml +++ /dev/null @@ -1,14 +0,0 @@ -en: - activerecord: - errors: - models: - course/monitoring/monitor: - attributes: - enabled: - must_be_password_protected: 'assessment must be password protected to enable' - max_interval_ms: - greater_than_min_interval: 'must be greater than min interval' - blocks: - must_have_browser_authorization_and_session_protection: 'must have browser authorization and session protection enabled' - seb_config_key: - required_if_using_seb_config_key_browser_authorization: 'must have seb config key if using seb config key browser authorization method' diff --git a/config/locales/en/activerecord/course/personal_time.yml b/config/locales/en/activerecord/course/personal_time.yml deleted file mode 100644 index 8053925078c..00000000000 --- a/config/locales/en/activerecord/course/personal_time.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/personal_time: - attributes: - start_at: - cannot_be_after_end_at: 'cannot be after end at' diff --git a/config/locales/en/activerecord/course/reference_time.yml b/config/locales/en/activerecord/course/reference_time.yml deleted file mode 100644 index 8a37008e908..00000000000 --- a/config/locales/en/activerecord/course/reference_time.yml +++ /dev/null @@ -1,12 +0,0 @@ -en: - activerecord: - errors: - models: - course/reference_time: - attributes: - reference_timeline: - cannot_destroy_in_default_timeline: 'cannot delete times in default reference timeline' - start_at: - cannot_be_after_end_at: 'cannot be after end at' - lesson_plan_item: - must_be_in_same_course: 'must be in the same course as the reference timeline' diff --git a/config/locales/en/activerecord/course/reference_timeline.yml b/config/locales/en/activerecord/course/reference_timeline.yml deleted file mode 100644 index b93c00a20db..00000000000 --- a/config/locales/en/activerecord/course/reference_timeline.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - activerecord: - errors: - models: - course/reference_timeline: - attributes: - default: - taken: 'can only have one default reference timeline' - cannot_destroy: 'cannot delete default reference timeline' diff --git a/config/locales/en/activerecord/course/scholaistic_assessment.yml b/config/locales/en/activerecord/course/scholaistic_assessment.yml deleted file mode 100644 index b7094211428..00000000000 --- a/config/locales/en/activerecord/course/scholaistic_assessment.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/scholaistic_assessment: - attributes: - time_bonus_exp: - bonus_attributes_not_allowed: 'bonus attributes are not allowed' diff --git a/config/locales/en/activerecord/course/survey/answer.yml b/config/locales/en/activerecord/course/survey/answer.yml deleted file mode 100644 index c1550a39fba..00000000000 --- a/config/locales/en/activerecord/course/survey/answer.yml +++ /dev/null @@ -1,6 +0,0 @@ -en: - activerecord: - errors: - models: - course/survey/answer: - cannot_be_empty: 'The answer to this question must not be empty.' diff --git a/config/locales/en/activerecord/course/user_achievement.yml b/config/locales/en/activerecord/course/user_achievement.yml deleted file mode 100644 index cdfb66cf459..00000000000 --- a/config/locales/en/activerecord/course/user_achievement.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/user_achievement: - attributes: - course_user: - not_in_course: 'Selected user is not in specified course' diff --git a/config/locales/en/activerecord/course/user_invitation.yml b/config/locales/en/activerecord/course/user_invitation.yml deleted file mode 100644 index 0a5023db5d5..00000000000 --- a/config/locales/en/activerecord/course/user_invitation.yml +++ /dev/null @@ -1,6 +0,0 @@ -en: - activerecord: - errors: - models: - course/user_invitation: - existing_invitation: 'an open invitation exists for this email address' diff --git a/config/locales/en/activerecord/course/video.yml b/config/locales/en/activerecord/course/video.yml deleted file mode 100644 index a05a87b73a6..00000000000 --- a/config/locales/en/activerecord/course/video.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - activerecord: - errors: - models: - course/video: - attributes: - url: - invalid_url: > - The URL you entered is not of the correct format, please try again. diff --git a/config/locales/en/activerecord/course/video/session.yml b/config/locales/en/activerecord/course/video/session.yml deleted file mode 100644 index 387a82a246f..00000000000 --- a/config/locales/en/activerecord/course/video/session.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course/video/session: - attributes: - session_start: - cannot_be_after_session_end: 'Session cannot start after ending' diff --git a/config/locales/en/activerecord/course/video/submission.yml b/config/locales/en/activerecord/course/video/submission.yml deleted file mode 100644 index afcbb1722e5..00000000000 --- a/config/locales/en/activerecord/course/video/submission.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - activerecord: - errors: - models: - course/video/submission: - attributes: - experience_points_record: - inconsistent_user: 'creator must be the same as the course user record' - submission_already_exists: 'Looks like you have already created a submission. Try again?' diff --git a/config/locales/en/activerecord/course/video/tab.yml b/config/locales/en/activerecord/course/video/tab.yml deleted file mode 100644 index 343b90a7820..00000000000 --- a/config/locales/en/activerecord/course/video/tab.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - activerecord: - attributes: - course/video/tab/title: - default: 'Default' - course/video/tab: - weight: 'Order' - errors: - models: - course/video/tab: - deletion: 'The last tab cannot be deleted' diff --git a/config/locales/en/activerecord/course_user.yml b/config/locales/en/activerecord/course_user.yml deleted file mode 100644 index bb6af74a5e6..00000000000 --- a/config/locales/en/activerecord/course_user.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - course_user: - attributes: - reference_timeline: - belongs_to_course: 'must belong to course' diff --git a/config/locales/en/activerecord/duplication_traceable.yml b/config/locales/en/activerecord/duplication_traceable.yml deleted file mode 100644 index 32ac131a646..00000000000 --- a/config/locales/en/activerecord/duplication_traceable.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - duplication_traceable: - attributes: - source_id: - must_exist: 'the source must exist and be an instance of the dependent_class' diff --git a/config/locales/en/activerecord/errors.yml b/config/locales/en/activerecord/errors.yml new file mode 100644 index 00000000000..cb30644cca7 --- /dev/null +++ b/config/locales/en/activerecord/errors.yml @@ -0,0 +1,237 @@ +en: + activerecord: + errors: + models: + course: + attributes: + reference_timelines: + must_have_at_most_one_default: 'must have at most one default' + course/announcement: + attributes: + end_at: + cannot_be_before_start_at: 'cannot be before start at' + course/assessment: + attributes: + no_test_type_chosen: 'At least one type of test case must be selected for grade and exp calculation' + tab: + not_in_same_course: 'The tab that you have selected is not in the same course as the assessment' + course/assessment/answer: + attributes: + question: + consistent_assessment: 'must belong to the same assessment' + submission: + attemptable_state: 'must be in the attempting state' + grade: + no_blank_grade: 'Grade must not be empty if it is already graded' + consistent_grade: 'must be less than question maximum grade' + non_negative_grade: 'cannot be negative' + course/assessment/answer/programming: + attributes: + files: + exceed_size_limit: 'Your answer (%{total_size_mb} MB) must be less than 2 MB.' + course/assessment/answer/text_response: + attributes: + attachments: + unique: 'File names must be unique' + course/assessment/category: + deletion: 'the last category cannot be deleted' + course/assessment/question/multiple_response: + attributes: + options: + no_option: 'must contain at least one option.' + no_correct_option: 'must contain at least one correct option.' + course/assessment/question/rubric_based_response: + attributes: + categories: + reserved_category_name: 'Moderation is a reserved category name, and hence cannot be used' + duplicate_category_names: 'Category names must be unique within the question rubric' + at_least_one_category: 'At least one rubric category is required' + course/assessment/question/rubric_based_response_category: + attributes: + criterions: + duplicate_grades_within_category: 'Grade must be unique within the category' + at_least_one_grade: 'At least one grade is required within each category' + grade_zero_missing: 'Grade 0 must be present for each category' + grade_higher_than_maximum_grade: 'Grade must be less than or equal to the maximum grade' + course/assessment/question/text_response: + attributes: + maximum_grade: + invalid_grade: 'must be no less than the grade of any solution' + course/assessment/question/text_response_comprehension_group: + attributes: + maximum_group_grade: + invalid_group_grade: 'must be no more than the maximum grade of the question' + course/assessment/question/text_response_comprehension_point: + attributes: + point_grade: + invalid_point_grade: 'must be no more than the maximum grade of the group' + solutions: + more_than_one_compre_lifted_word_solution: 'all lifted words for a same point are to be placed together in one row' + course/assessment/question/text_response_comprehension_solution: + attributes: + solution_lemma: + solution_lemma_empty: "couldn't generate any lemma form: please check your spelling" + information: + information_empty: "can't be blank for keyword solution" + course/assessment/question/text_response_solution: + attributes: + grade: + invalid_grade: 'must be no more than the maximum grade of the question' + course/assessment/question_bundle_assignment: + attributes: + submission: + must_belong_to_assessment_and_user: 'must belong to assessment and user' + course/assessment/skill: + attributes: + course: + consistent_course: 'must belong to the same course' + course/assessment/submission: + attributes: + experience_points_record: + inconsistent_user: 'creator must be the same as the course user record' + absent_award_attributes: > + there is no award attributes for your submission, please try again + or contact the Coursemology team + submission_already_exists: 'Looks like you have already created a submission. Try again?' + no_bundles_assigned: 'There are no question bundles assigned for you. Contact your instructor for assistance.' + autograded_no_partial_answer: 'There are updated answers which have not been re-submitted yet. Please re-submit all answers before finalising your submission.' + course/assessment/tab: + deletion: 'the last tab cannot be deleted' + course/condition: + attributes: + conditional: + not_in_same_course: 'The conditional that you have selected is not in the same course as the current condition' + course/condition/achievement: + attributes: + achievement: + unique_dependency: 'cannot have duplicate conditions' + references_self: 'cannot have itself as a condition' + cyclic_dependency: 'cannot have cyclic dependency' + course/condition/assessment: + attributes: + assessment: + unique_dependency: 'cannot have duplicate conditions' + references_self: 'cannot have itself as condition' + cyclic_dependency: 'cannot have cyclic dependency' + course/condition/scholaistic_assessment: + attributes: + scholaistic_assessment: + unique_dependency: 'cannot have duplicate conditions' + references_self: 'cannot have itself as condition' + course/condition/survey: + attributes: + survey: + unique_dependency: 'cannot have duplicate conditions' + references_self: 'cannot have itself as condition' + cyclic_dependency: 'cannot have cyclic dependency' + course/condition/video: + attributes: + video: + unique_dependency: 'cannot have duplicate conditions' + references_self: 'cannot have itself as condition' + cyclic_dependency: 'cannot have cyclic dependency' + course/discussion/post: + attributes: + post: + topic_inconsistent: 'The post and its parent post reference a different topic.' + course/enrol_request: + user_in_course: 'It seems like you are already enrolled in the course. Please try refreshing the page?' + existing_pending_request: 'It seems like you have already submitted an enrolment request.' + attributes: + base: + deletion: 'Unable to cancel your enrolment request as it has been processed.' + course/group_user: + not_enrolled: 'must be enrolled in same course as group' + course/learning_rate_record: + attributes: + learning_rate: + less_than_min: 'is not >= effective_min' + greater_than_max: 'is not <= effective_max' + course/lesson_plan/item: + attributes: + bonus_end_at: + required: 'cannot be blank if time bonus exp is set' + reference_times: + must_have_at_most_one_default: 'must have at most one default' + course/monitoring/heartbeat: + attributes: + seb_payload: + invalid_seb_payload: 'seb payload must be either blank or a valid json object' + course/monitoring/monitor: + attributes: + enabled: + must_be_password_protected: 'assessment must be password protected to enable' + max_interval_ms: + greater_than_min_interval: 'must be greater than min interval' + blocks: + must_have_browser_authorization_and_session_protection: 'must have browser authorization and session protection enabled' + seb_config_key: + required_if_using_seb_config_key_browser_authorization: 'must have seb config key if using seb config key browser authorization method' + course/personal_time: + attributes: + start_at: + cannot_be_after_end_at: 'cannot be after end at' + course/reference_time: + attributes: + reference_timeline: + cannot_destroy_in_default_timeline: 'cannot delete times in default reference timeline' + start_at: + cannot_be_after_end_at: 'cannot be after end at' + lesson_plan_item: + must_be_in_same_course: 'must be in the same course as the reference timeline' + course/reference_timeline: + attributes: + default: + taken: 'can only have one default reference timeline' + cannot_destroy: 'cannot delete default reference timeline' + course/scholaistic_assessment: + attributes: + time_bonus_exp: + bonus_attributes_not_allowed: 'bonus attributes are not allowed' + course/survey/answer: + cannot_be_empty: 'The answer to this question must not be empty.' + course/user_achievement: + attributes: + course_user: + not_in_course: 'Selected user is not in specified course' + course/user_invitation: + existing_invitation: 'an open invitation exists for this email address' + course/video: + attributes: + url: + invalid_url: 'The URL you entered is not of the correct format, please try again.' + course/video/session: + attributes: + session_start: + cannot_be_after_session_end: 'Session cannot start after ending' + course/video/submission: + attributes: + experience_points_record: + inconsistent_user: 'creator must be the same as the course user record' + submission_already_exists: 'Looks like you have already created a submission. Try again?' + course/video/tab: + deletion: 'The last tab cannot be deleted' + course_user: + attributes: + reference_timeline: + belongs_to_course: 'must belong to course' + duplication_traceable: + attributes: + source_id: + must_exist: 'the source must exist and be an instance of the dependent_class' + generic_announcement: + attributes: + end_at: + cannot_be_before_start_at: 'cannot be before start at' + instance/user_role_request: + attributes: + base: + existing_pending_request: > + 'You have an existing role request. Please refresh the page.' + messages: + filename_validator: + invalid_characters: '%{characters} are not allowed.' + tailing_dots: 'tailing dots are not allowed.' + whitespaces: 'leading or tailing whitespaces are not allowed.' + time_zone_validator: + invalid_time_zone: 'The time zone is invalid.' diff --git a/config/locales/en/activerecord/filename_validator.yml b/config/locales/en/activerecord/filename_validator.yml deleted file mode 100644 index 0168da71833..00000000000 --- a/config/locales/en/activerecord/filename_validator.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - messages: - filename_validator: - invalid_characters: '%{characters} are not allowed.' - tailing_dots: 'tailing dots are not allowed.' - whitespaces: 'leading or tailing whitespaces are not allowed.' diff --git a/config/locales/en/activerecord/generic_announcement.yml b/config/locales/en/activerecord/generic_announcement.yml deleted file mode 100644 index f410d310d1e..00000000000 --- a/config/locales/en/activerecord/generic_announcement.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - activerecord: - errors: - models: - generic_announcement: - attributes: - end_at: - cannot_be_before_start_at: 'cannot be before start at' diff --git a/config/locales/en/activerecord/instance.yml b/config/locales/en/activerecord/instance.yml deleted file mode 100644 index 0560cebaee0..00000000000 --- a/config/locales/en/activerecord/instance.yml +++ /dev/null @@ -1,9 +0,0 @@ -en: - activerecord: - errors: - models: - instance/user_role_request: - attributes: - base: - existing_pending_request: > - 'You have an existing role request. Please refresh the page.' diff --git a/config/locales/en/activerecord/time_zone_validator.yml b/config/locales/en/activerecord/time_zone_validator.yml deleted file mode 100644 index 4fd3955b3b0..00000000000 --- a/config/locales/en/activerecord/time_zone_validator.yml +++ /dev/null @@ -1,6 +0,0 @@ -en: - activerecord: - errors: - messages: - time_zone_validator: - invalid_time_zone: 'The time zone is invalid.' diff --git a/config/locales/en/course/lesson_plan/items.yml b/config/locales/en/course/lesson_plan/items.yml deleted file mode 100644 index 8ef4f9577d2..00000000000 --- a/config/locales/en/course/lesson_plan/items.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - activerecord: - attributes: - course/lesson_plan/item: - reference_times: 'Reference times' - errors: - models: - course/lesson_plan/item: - attributes: - reference_times: - must_have_at_most_one_default: 'must have at most one default' diff --git a/config/locales/ko/activerecord/attributes.yml b/config/locales/ko/activerecord/attributes.yml new file mode 100644 index 00000000000..6696c1e3611 --- /dev/null +++ b/config/locales/ko/activerecord/attributes.yml @@ -0,0 +1,70 @@ +ko: + activerecord: + course/assessment/question: + question_number: '질문 %{index}' + question_with_title: '%{question_number}: %{title}' + attributes: + course: + reference_timelines: '참조 타임라인' + course/assessment/answer: + submitted_at: '제출 시각' + grade: '점수' + grader: '채점자' + graded_at: '채점 시각' + course/assessment/category: + weight: '순서' + course/assessment/category/title: + default: '평가' + course/assessment/question: + weight: '순서' + course/assessment/submission: + grade: '총점' + status: '상태' + submitted_at: :'activerecord.attributes.course/assessment/answer.submitted_at' + grader: :'activerecord.attributes.course/assessment/answer.grader' + graded_at: :'activerecord.attributes.course/assessment/answer.graded_at' + attempting: '시도 중' + submitted: '제출됨' + graded: '채점 완료, 미공개' + published: '채점 완료' + course/assessment/tab: + weight: '순서' + course/assessment/tab/title: + default: '기본값' + course/condition/assessment/title: + minimum_score: '%{assessment_title}에서 최소 %{minimum_grade_percentage} 점수를 획득하세요' + complete: '%{assessment_title} 완료' + course/condition/level/title: + title: '레벨 %{value}' + course/condition/scholaistic_assessment/title: + complete: '%{title} 완료' + course/condition/survey/title: + complete: '%{survey_title} 완료' + course/condition/video/title: + complete: '%{video_title} 시청' + course/discussion/post: + title_reply_template: '답글: %{title}' + course/experience_points_record: + points_awarded: '경험치 부여됨' + course/forum/topic/topic_type: + normal: '일반' + announcement: '공지' + question: '질문' + sticky: '고정' + course/group_user: + manager: '교사' + course/lesson_plan/item: + base_exp: '경험치' + time_bonus_exp: '보너스 경험치' + reference_times: '참조 시간' + course/video/tab: + weight: '순서' + course/video/tab/title: + default: '기본값' + models: + course/assessment/question/rubric_based_response: + rubric_based_response: '루브릭 기반 응답 질문' + course/assessment/question/text_response: + text_response: '서술형 질문' + file_upload: '파일 업로드 질문' + comprehension: '이해력 질문' diff --git a/config/locales/ko/activerecord/course.yml b/config/locales/ko/activerecord/course.yml deleted file mode 100644 index 512383ef69a..00000000000 --- a/config/locales/ko/activerecord/course.yml +++ /dev/null @@ -1,11 +0,0 @@ -ko: - activerecord: - attributes: - course: - reference_timelines: '참조 타임라인' - errors: - models: - course: - attributes: - reference_timelines: - must_have_at_most_one_default: '최대 하나의 기본값만 있어야 합니다' diff --git a/config/locales/ko/activerecord/course/announcement.yml b/config/locales/ko/activerecord/course/announcement.yml deleted file mode 100644 index dd887ac81f7..00000000000 --- a/config/locales/ko/activerecord/course/announcement.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/announcement: - attributes: - end_at: - cannot_be_before_start_at: '시작 시각보다 이를 수 없습니다' diff --git a/config/locales/ko/activerecord/course/assessment.yml b/config/locales/ko/activerecord/course/assessment.yml deleted file mode 100644 index 6ec7c16d6a1..00000000000 --- a/config/locales/ko/activerecord/course/assessment.yml +++ /dev/null @@ -1,11 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment: - attributes: - tab: - not_in_same_course: > - 선택한 탭이 평가와 동일한 코스에 있지 않습니다 - no_test_type_chosen: > - 점수 및 경험치 계산을 위해 적어도 하나의 테스트 유형을 선택해야 합니다 diff --git a/config/locales/ko/activerecord/course/assessment/answer.yml b/config/locales/ko/activerecord/course/assessment/answer.yml deleted file mode 100644 index 1dac9652c53..00000000000 --- a/config/locales/ko/activerecord/course/assessment/answer.yml +++ /dev/null @@ -1,20 +0,0 @@ -ko: - activerecord: - attributes: - course/assessment/answer: - submitted_at: '제출 시각' - grade: '점수' - grader: '채점자' - graded_at: '채점 시각' - errors: - models: - course/assessment/answer: - attributes: - question: - consistent_assessment: '동일한 평가에 속해야 합니다' - submission: - attemptable_state: '시도 상태여야 합니다' - grade: - no_blank_grade: '이미 채점된 경우 점수는 비워둘 수 없습니다' - consistent_grade: '문제의 최대 점수보다 작아야 합니다' - non_negative_grade: '음수일 수 없습니다' diff --git a/config/locales/ko/activerecord/course/assessment/answer/programming.yml b/config/locales/ko/activerecord/course/assessment/answer/programming.yml deleted file mode 100644 index 3e6a59a2e72..00000000000 --- a/config/locales/ko/activerecord/course/assessment/answer/programming.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment/answer/programming: - attributes: - files: - exceed_size_limit: '제출한 답변(%{total_size_mb} MB)은 2MB 미만이어야 합니다.' diff --git a/config/locales/ko/activerecord/course/assessment/answer/text_response.yml b/config/locales/ko/activerecord/course/assessment/answer/text_response.yml deleted file mode 100644 index 7cdc9a31ff7..00000000000 --- a/config/locales/ko/activerecord/course/assessment/answer/text_response.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment/answer/text_response: - attributes: - attachments: - unique: '파일 이름은 중복되어선 안 됩니다' diff --git a/config/locales/ko/activerecord/course/assessment/category.yml b/config/locales/ko/activerecord/course/assessment/category.yml deleted file mode 100644 index 804a2e5dc7b..00000000000 --- a/config/locales/ko/activerecord/course/assessment/category.yml +++ /dev/null @@ -1,11 +0,0 @@ -ko: - activerecord: - attributes: - course/assessment/category/title: - default: '평가' - course/assessment/category: - weight: '순서' - errors: - models: - course/assessment/category: - deletion: '마지막 카테고리는 삭제할 수 없습니다' diff --git a/config/locales/ko/activerecord/course/assessment/question.yml b/config/locales/ko/activerecord/course/assessment/question.yml deleted file mode 100644 index 19126b48c2e..00000000000 --- a/config/locales/ko/activerecord/course/assessment/question.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - course/assessment/question: - question_number: '질문 %{index}' - question_with_title: '%{question_number}: %{title}' - attributes: - course/assessment/question: - weight: '순서' diff --git a/config/locales/ko/activerecord/course/assessment/question/multiple_response.yml b/config/locales/ko/activerecord/course/assessment/question/multiple_response.yml deleted file mode 100644 index e2f06775e44..00000000000 --- a/config/locales/ko/activerecord/course/assessment/question/multiple_response.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment/question/multiple_response: - attributes: - options: - no_option: '최소한 하나의 옵션을 포함해야 합니다.' - no_correct_option: '최소한 하나의 정답 옵션을 포함해야 합니다.' diff --git a/config/locales/ko/activerecord/course/assessment/question/rubric_based_response.yml b/config/locales/ko/activerecord/course/assessment/question/rubric_based_response.yml deleted file mode 100644 index 1cab308ae87..00000000000 --- a/config/locales/ko/activerecord/course/assessment/question/rubric_based_response.yml +++ /dev/null @@ -1,21 +0,0 @@ -ko: - activerecord: - attributes: - models: - course/assessment/question/rubric_based_response: - rubric_based_response: '루브릭 기반 응답 질문' - errors: - models: - 'course/assessment/question/rubric_based_response': - attributes: - categories: - reserved_category_name: '조정은 예약된 카테고리 이름이므로 사용할 수 없습니다' - duplicate_category_names: '카테고리 이름은 질문 루브릭 내에서 고유해야 합니다' - at_least_one_category: '최소한 하나의 루브릭 카테고리가 필요합니다' - 'course/assessment/question/rubric_based_response_category': - attributes: - criterions: - duplicate_grades_within_category: '카테고리 내의 점수는 중복될 수 없습니다' - at_least_one_grade: '각 카테고리에는 최소 하나의 점수가 필요합니다' - grade_zero_missing: '각 카테고리에는 0점 가 포함되어야 합니다' - grade_higher_than_maximum_grade: '점수는 최대 점수보다 작거나 같아야 합니다' diff --git a/config/locales/ko/activerecord/course/assessment/question/text_response.yml b/config/locales/ko/activerecord/course/assessment/question/text_response.yml deleted file mode 100644 index bf6bc370e75..00000000000 --- a/config/locales/ko/activerecord/course/assessment/question/text_response.yml +++ /dev/null @@ -1,14 +0,0 @@ -ko: - activerecord: - attributes: - models: - course/assessment/question/text_response: - text_response: '서술형 질문' - file_upload: '파일 업로드 질문' - comprehension: '이해력 질문' - errors: - models: - course/assessment/question/text_response: - attributes: - maximum_grade: - invalid_grade: '해답의 점수보다 낮을 수 없습니다' diff --git a/config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_group.yml b/config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_group.yml deleted file mode 100644 index ddd8591e9bf..00000000000 --- a/config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_group.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment/question/text_response_comprehension_group: - attributes: - maximum_group_grade: - invalid_group_grade: '질문의 최대 점수를 초과할 수 없습니다' diff --git a/config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_point.yml b/config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_point.yml deleted file mode 100644 index 3509d689076..00000000000 --- a/config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_point.yml +++ /dev/null @@ -1,10 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment/question/text_response_comprehension_point: - attributes: - point_grade: - invalid_point_grade: '그룹의 최대 점수를 초과할 수 없습니다' - solutions: - more_than_one_compre_lifted_word_solution: '같은 점수에 대한 모든 선택된 단어는 한 줄에 함께 배치되어야 합니다' diff --git a/config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_solution.yml b/config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_solution.yml deleted file mode 100644 index b308ec7383e..00000000000 --- a/config/locales/ko/activerecord/course/assessment/question/text_response_comprehension_solution.yml +++ /dev/null @@ -1,10 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment/question/text_response_comprehension_solution: - attributes: - solution_lemma: - solution_lemma_empty: '어떤 어휘 형태도 생성할 수 없습니다: 철자를 확인해 주세요' - information: - information_empty: '키워드 솔루션은 비워둘 수 없습니다' diff --git a/config/locales/ko/activerecord/course/assessment/question/text_response_solution.yml b/config/locales/ko/activerecord/course/assessment/question/text_response_solution.yml deleted file mode 100644 index 5173e888b8d..00000000000 --- a/config/locales/ko/activerecord/course/assessment/question/text_response_solution.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment/question/text_response_solution: - attributes: - grade: - invalid_grade: '질문의 최대 점수를 초과할 수 없습니다' diff --git a/config/locales/ko/activerecord/course/assessment/question_bundle_assignment.yml b/config/locales/ko/activerecord/course/assessment/question_bundle_assignment.yml deleted file mode 100644 index 9f4ba89e35a..00000000000 --- a/config/locales/ko/activerecord/course/assessment/question_bundle_assignment.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment/question_bundle_assignment: - attributes: - submission: - must_belong_to_assessment_and_user: '평가와 사용자에 속해야 합니다' diff --git a/config/locales/ko/activerecord/course/assessment/skill.yml b/config/locales/ko/activerecord/course/assessment/skill.yml deleted file mode 100644 index c8900967e36..00000000000 --- a/config/locales/ko/activerecord/course/assessment/skill.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/assessment/skill: - attributes: - course: - consistent_course: '동일한 과정에 속해야 합니다' diff --git a/config/locales/ko/activerecord/course/assessment/submission.yml b/config/locales/ko/activerecord/course/assessment/submission.yml deleted file mode 100644 index 9569581c1a9..00000000000 --- a/config/locales/ko/activerecord/course/assessment/submission.yml +++ /dev/null @@ -1,27 +0,0 @@ -ko: - activerecord: - attributes: - course/assessment/submission: - grade: '총점' - status: '상태' - submitted_at: :'activerecord.attributes.course/assessment/answer.submitted_at' - grader: :'activerecord.attributes.course/assessment/answer.grader' - graded_at: :'activerecord.attributes.course/assessment/answer.graded_at' - attempting: '시도 중' - submitted: '제출됨' - graded: '채점 완료, 미공개' - published: '채점 완료' - errors: - models: - course/assessment/submission: - attributes: - experience_points_record: - inconsistent_user: '생성자는 코스 사용자 기록과 동일해야 합니다' - absent_award_attributes: > - 제출물에 대한 보상 속성이 없습니다. 다시 시도하거나 Coursemology - 팀에 문의하세요. - submission_already_exists: '이미 제출물을 생성한 것 같습니다. 다시 시도하시겠습니까?' - no_bundles_assigned: '할당된 문제 묶음이 없습니다. 도움을 받으려면 강사에게 문의하세요.' - autograded_no_partial_answer: '업데이트된 답변이 아직 다시 제출되지 않았습니다. 제출을 완료하기 전에 모든 답변을 다시 제출하세요.' - course/assessment/category: - deletion: '마지막 카테고리는 삭제할 수 없습니다' diff --git a/config/locales/ko/activerecord/course/assessment/tab.yml b/config/locales/ko/activerecord/course/assessment/tab.yml deleted file mode 100644 index 025b149c47a..00000000000 --- a/config/locales/ko/activerecord/course/assessment/tab.yml +++ /dev/null @@ -1,11 +0,0 @@ -ko: - activerecord: - attributes: - course/assessment/tab/title: - default: '기본값' - course/assessment/tab: - weight: '순서' - errors: - models: - course/assessment/tab: - deletion: '마지막 탭은 삭제할 수 없습니다' diff --git a/config/locales/ko/activerecord/course/condition/achievement.yml b/config/locales/ko/activerecord/course/condition/achievement.yml deleted file mode 100644 index 5a8ec694ad1..00000000000 --- a/config/locales/ko/activerecord/course/condition/achievement.yml +++ /dev/null @@ -1,10 +0,0 @@ -ko: - activerecord: - errors: - models: - course/condition/achievement: - attributes: - achievement: - unique_dependency: '중복 조건을 가질 수 없습니다' - references_self: '자기 자신을 조건으로 가질 수 없습니다' - cyclic_dependency: '순환 의존성을 가질 수 없습니다' diff --git a/config/locales/ko/activerecord/course/condition/assessment.yml b/config/locales/ko/activerecord/course/condition/assessment.yml deleted file mode 100644 index 20ca886c1cc..00000000000 --- a/config/locales/ko/activerecord/course/condition/assessment.yml +++ /dev/null @@ -1,14 +0,0 @@ -ko: - activerecord: - attributes: - course/condition/assessment/title: - minimum_score: '%{assessment_title}에서 최소 %{minimum_grade_percentage} 점수를 획득하세요' - complete: '%{assessment_title} 완료' - errors: - models: - course/condition/assessment: - attributes: - assessment: - unique_dependency: '중복 조건을 가질 수 없습니다' - references_self: '자신 자신을 조건으로 가질 수 없습니다' - cyclic_dependency: '순환 의존성을 가질 수 없습니다' diff --git a/config/locales/ko/activerecord/course/condition/condition.yml b/config/locales/ko/activerecord/course/condition/condition.yml deleted file mode 100644 index 5fdf0d1d199..00000000000 --- a/config/locales/ko/activerecord/course/condition/condition.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/condition: - attributes: - conditional: - not_in_same_course: '선택한 조건이 현재 조건과 동일한 코스에 있지 않습니다' diff --git a/config/locales/ko/activerecord/course/condition/level.yml b/config/locales/ko/activerecord/course/condition/level.yml deleted file mode 100644 index eee0f5855c2..00000000000 --- a/config/locales/ko/activerecord/course/condition/level.yml +++ /dev/null @@ -1,5 +0,0 @@ -ko: - activerecord: - attributes: - course/condition/level/title: - title: '레벨 %{value}' diff --git a/config/locales/ko/activerecord/course/condition/scholaistic_assessment.yml b/config/locales/ko/activerecord/course/condition/scholaistic_assessment.yml deleted file mode 100644 index b7426ebbfa3..00000000000 --- a/config/locales/ko/activerecord/course/condition/scholaistic_assessment.yml +++ /dev/null @@ -1,12 +0,0 @@ -ko: - activerecord: - attributes: - course/condition/scholaistic_assessment/title: - complete: '%{title} 완료' - errors: - models: - course/condition/scholaistic_assessment: - attributes: - scholaistic_assessment: - unique_dependency: '중복 조건을 가질 수 없습니다' - references_self: '자신 자신을 조건으로 가질 수 없습니다' diff --git a/config/locales/ko/activerecord/course/condition/survey.yml b/config/locales/ko/activerecord/course/condition/survey.yml deleted file mode 100644 index a758bfe8f60..00000000000 --- a/config/locales/ko/activerecord/course/condition/survey.yml +++ /dev/null @@ -1,13 +0,0 @@ -ko: - activerecord: - attributes: - course/condition/survey/title: - complete: '%{survey_title} 완료' - errors: - models: - course/condition/survey: - attributes: - survey: - unique_dependency: '중복 조건을 가질 수 없습니다' - references_self: '자기 자신을 조건으로 가질 수 없습니다' - cyclic_dependency: '순환 의존성을 가질 수 없습니다' diff --git a/config/locales/ko/activerecord/course/condition/video.yml b/config/locales/ko/activerecord/course/condition/video.yml deleted file mode 100644 index 5fecdfc1ed0..00000000000 --- a/config/locales/ko/activerecord/course/condition/video.yml +++ /dev/null @@ -1,13 +0,0 @@ -ko: - activerecord: - attributes: - course/condition/video/title: - complete: '%{video_title} 시청' - errors: - models: - course/condition/video: - attributes: - video: - unique_dependency: '중복 조건을 가질 수 없습니다' - references_self: '자기 자신을 조건으로 가질 수 없습니다' - cyclic_dependency: '순환 의존성을 가질 수 없습니다' diff --git a/config/locales/ko/activerecord/course/discussion/post.yml b/config/locales/ko/activerecord/course/discussion/post.yml deleted file mode 100644 index 4d0c8c42be2..00000000000 --- a/config/locales/ko/activerecord/course/discussion/post.yml +++ /dev/null @@ -1,11 +0,0 @@ -ko: - activerecord: - attributes: - course/discussion/post: - title_reply_template: '답글: %{title}' - errors: - models: - course/discussion/post: - attributes: - post: - topic_inconsistent: '게시물과 부모 게시물이 다른 주제를 참조하고 있습니다.' diff --git a/config/locales/ko/activerecord/course/enrol_request.yml b/config/locales/ko/activerecord/course/enrol_request.yml deleted file mode 100644 index 932266e17a8..00000000000 --- a/config/locales/ko/activerecord/course/enrol_request.yml +++ /dev/null @@ -1,13 +0,0 @@ -ko: - activerecord: - errors: - models: - course/enrol_request: - user_in_course: > - 이미 이 과정에 등록된 것 같습니다. 페이지를 새로고침해 보시겠습니까? - existing_pending_request: > - 이미 등록 요청을 제출한 것 같습니다. - attributes: - base: - deletion: > - 가입 신청이 처리되었으므로 취소할 수 없습니다. diff --git a/config/locales/ko/activerecord/course/experience_points_record.yml b/config/locales/ko/activerecord/course/experience_points_record.yml deleted file mode 100644 index c3c59f1e4fa..00000000000 --- a/config/locales/ko/activerecord/course/experience_points_record.yml +++ /dev/null @@ -1,5 +0,0 @@ -ko: - activerecord: - attributes: - course/experience_points_record: - points_awarded: '경험치 부여됨' diff --git a/config/locales/ko/activerecord/course/forum/topic.yml b/config/locales/ko/activerecord/course/forum/topic.yml deleted file mode 100644 index 244599f79db..00000000000 --- a/config/locales/ko/activerecord/course/forum/topic.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - attributes: - course/forum/topic/topic_type: - normal: '일반' - announcement: '공지' - question: '질문' - sticky: '고정' diff --git a/config/locales/ko/activerecord/course/group_user.yml b/config/locales/ko/activerecord/course/group_user.yml deleted file mode 100644 index 5530c4546c1..00000000000 --- a/config/locales/ko/activerecord/course/group_user.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - activerecord: - errors: - models: - course/group_user: - not_enrolled: '그룹과 동일한 과정에 등록되어 있어야 합니다' - attributes: - course/group_user: - manager: '교사' diff --git a/config/locales/ko/activerecord/course/learning_rate_record.yml b/config/locales/ko/activerecord/course/learning_rate_record.yml deleted file mode 100644 index 64eabb3ab68..00000000000 --- a/config/locales/ko/activerecord/course/learning_rate_record.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - activerecord: - errors: - models: - course/learning_rate_record: - attributes: - learning_rate: - less_than_min: '유효한 최소값 이상이어야 합니다' - greater_than_max: '유효한 최대값 이하여야 합니다' diff --git a/config/locales/ko/activerecord/course/lesson_plan.yml b/config/locales/ko/activerecord/course/lesson_plan.yml deleted file mode 100644 index 00d7fbc675f..00000000000 --- a/config/locales/ko/activerecord/course/lesson_plan.yml +++ /dev/null @@ -1,12 +0,0 @@ -ko: - activerecord: - errors: - models: - course/lesson_plan/item: - attributes: - bonus_end_at: - required: '시간 보너스 경험치가 설정된 경우 비워 둘 수 없습니다' - attributes: - course/lesson_plan/item: - base_exp: '경험치' - time_bonus_exp: '보너스 경험치' diff --git a/config/locales/ko/activerecord/course/monitoring/heartbeat.yml b/config/locales/ko/activerecord/course/monitoring/heartbeat.yml deleted file mode 100644 index e312fb14729..00000000000 --- a/config/locales/ko/activerecord/course/monitoring/heartbeat.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/monitoring/heartbeat: - attributes: - seb_payload: - invalid_seb_payload: 'seb payload는 비어 있거나 유효한 JSON 객체여야 합니다' diff --git a/config/locales/ko/activerecord/course/monitoring/monitor.yml b/config/locales/ko/activerecord/course/monitoring/monitor.yml deleted file mode 100644 index 1f68f5a1e39..00000000000 --- a/config/locales/ko/activerecord/course/monitoring/monitor.yml +++ /dev/null @@ -1,14 +0,0 @@ -ko: - activerecord: - errors: - models: - course/monitoring/monitor: - attributes: - enabled: - must_be_password_protected: '평가는 활성화를 위해 비밀번호로 보호되어야 합니다' - max_interval_ms: - greater_than_min_interval: '최소 간격보다 커야 합니다' - blocks: - must_have_browser_authorization_and_session_protection: '브라우저 인증 및 세션 보호가 활성화되어 있어야 합니다' - seb_config_key: - required_if_using_seb_config_key_browser_authorization: 'seb 구성 키 브라우저 인증 방법을 사용하는 경우 seb 구성 키가 필요합니다' diff --git a/config/locales/ko/activerecord/course/personal_time.yml b/config/locales/ko/activerecord/course/personal_time.yml deleted file mode 100644 index 46eff61532e..00000000000 --- a/config/locales/ko/activerecord/course/personal_time.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/personal_time: - attributes: - start_at: - cannot_be_after_end_at: '종료 시각 이후일 수 없습니다' diff --git a/config/locales/ko/activerecord/course/reference_time.yml b/config/locales/ko/activerecord/course/reference_time.yml deleted file mode 100644 index 3590de59d42..00000000000 --- a/config/locales/ko/activerecord/course/reference_time.yml +++ /dev/null @@ -1,12 +0,0 @@ -ko: - activerecord: - errors: - models: - course/reference_time: - attributes: - reference_timeline: - cannot_destroy_in_default_timeline: '기본 참조 타임라인에서 시간을 삭제할 수 없습니다' - start_at: - cannot_be_after_end_at: '종료 시각 이후일 수 없습니다' - lesson_plan_item: - must_be_in_same_course: '참조 타임라인과 동일한 과정에 있어야 합니다' diff --git a/config/locales/ko/activerecord/course/reference_timeline.yml b/config/locales/ko/activerecord/course/reference_timeline.yml deleted file mode 100644 index 3ca5fea8e80..00000000000 --- a/config/locales/ko/activerecord/course/reference_timeline.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - activerecord: - errors: - models: - course/reference_timeline: - attributes: - default: - taken: '기본 참조 타임라인은 하나만 가질 수 있습니다' - cannot_destroy: '기본 참조 타임라인을 삭제할 수 없습니다' diff --git a/config/locales/ko/activerecord/course/scholaistic_assessment.yml b/config/locales/ko/activerecord/course/scholaistic_assessment.yml deleted file mode 100644 index d6a44c65a60..00000000000 --- a/config/locales/ko/activerecord/course/scholaistic_assessment.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/scholaistic_assessment: - attributes: - time_bonus_exp: - bonus_attributes_not_allowed: '보너스 속성은 허용되지 않습니다' diff --git a/config/locales/ko/activerecord/course/survey/answer.yml b/config/locales/ko/activerecord/course/survey/answer.yml deleted file mode 100644 index d58b69ac542..00000000000 --- a/config/locales/ko/activerecord/course/survey/answer.yml +++ /dev/null @@ -1,6 +0,0 @@ -ko: - activerecord: - errors: - models: - course/survey/answer: - cannot_be_empty: '이 질문의 답변은 비워둘 수 없습니다.' diff --git a/config/locales/ko/activerecord/course/user_achievement.yml b/config/locales/ko/activerecord/course/user_achievement.yml deleted file mode 100644 index 52f338e787e..00000000000 --- a/config/locales/ko/activerecord/course/user_achievement.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/user_achievement: - attributes: - course_user: - not_in_course: '선택한 사용자가 지정된 코스에 없습니다' diff --git a/config/locales/ko/activerecord/course/user_invitation.yml b/config/locales/ko/activerecord/course/user_invitation.yml deleted file mode 100644 index 685a9164aa0..00000000000 --- a/config/locales/ko/activerecord/course/user_invitation.yml +++ /dev/null @@ -1,6 +0,0 @@ -ko: - activerecord: - errors: - models: - course/user_invitation: - existing_invitation: '이 이메일 주소에는 아직 완료되지 않은 초대장이 있습니다' diff --git a/config/locales/ko/activerecord/course/video.yml b/config/locales/ko/activerecord/course/video.yml deleted file mode 100644 index 8578d8eaa3d..00000000000 --- a/config/locales/ko/activerecord/course/video.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - activerecord: - errors: - models: - course/video: - attributes: - url: - invalid_url: > - 입력하신 URL의 형식이 올바르지 않습니다. 다시 시도해 주세요. diff --git a/config/locales/ko/activerecord/course/video/session.yml b/config/locales/ko/activerecord/course/video/session.yml deleted file mode 100644 index e88cd2f9e44..00000000000 --- a/config/locales/ko/activerecord/course/video/session.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course/video/session: - attributes: - session_start: - cannot_be_after_session_end: '세션은 종료 후에 시작할 수 없습니다' diff --git a/config/locales/ko/activerecord/course/video/submission.yml b/config/locales/ko/activerecord/course/video/submission.yml deleted file mode 100644 index 6602eacfedb..00000000000 --- a/config/locales/ko/activerecord/course/video/submission.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - activerecord: - errors: - models: - course/video/submission: - attributes: - experience_points_record: - inconsistent_user: '생성자는 코스 사용자 기록과 동일해야 합니다' - submission_already_exists: '이미 제출을 생성한 것 같습니다. 다시 시도하시겠습니까?' diff --git a/config/locales/ko/activerecord/course/video/tab.yml b/config/locales/ko/activerecord/course/video/tab.yml deleted file mode 100644 index d28136ab315..00000000000 --- a/config/locales/ko/activerecord/course/video/tab.yml +++ /dev/null @@ -1,11 +0,0 @@ -ko: - activerecord: - attributes: - course/video/tab/title: - default: '기본값' - course/video/tab: - weight: '순서' - errors: - models: - course/video/tab: - deletion: '마지막 탭은 삭제할 수 없습니다' diff --git a/config/locales/ko/activerecord/course_user.yml b/config/locales/ko/activerecord/course_user.yml deleted file mode 100644 index 630fd32d737..00000000000 --- a/config/locales/ko/activerecord/course_user.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - course_user: - attributes: - reference_timeline: - belongs_to_course: '코스에 속해야 합니다' diff --git a/config/locales/ko/activerecord/duplication_traceable.yml b/config/locales/ko/activerecord/duplication_traceable.yml deleted file mode 100644 index 280506702c4..00000000000 --- a/config/locales/ko/activerecord/duplication_traceable.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - duplication_traceable: - attributes: - source_id: - must_exist: '소스는 존재해야 하며 dependent_class의 인스턴스여야 합니다.' diff --git a/config/locales/ko/activerecord/errors.yml b/config/locales/ko/activerecord/errors.yml new file mode 100644 index 00000000000..dfbb97d09e6 --- /dev/null +++ b/config/locales/ko/activerecord/errors.yml @@ -0,0 +1,232 @@ +ko: + activerecord: + errors: + models: + course: + attributes: + reference_timelines: + must_have_at_most_one_default: '최대 하나의 기본값만 있어야 합니다' + course/announcement: + attributes: + end_at: + cannot_be_before_start_at: '시작 시각보다 이를 수 없습니다' + course/assessment: + attributes: + no_test_type_chosen: '점수 및 경험치 계산을 위해 적어도 하나의 테스트 유형을 선택해야 합니다' + tab: + not_in_same_course: '선택한 탭이 평가와 동일한 코스에 있지 않습니다' + course/assessment/answer: + attributes: + question: + consistent_assessment: '동일한 평가에 속해야 합니다' + submission: + attemptable_state: '시도 상태여야 합니다' + grade: + no_blank_grade: '이미 채점된 경우 점수는 비워둘 수 없습니다' + consistent_grade: '문제의 최대 점수보다 작아야 합니다' + non_negative_grade: '음수일 수 없습니다' + course/assessment/answer/programming: + attributes: + files: + exceed_size_limit: '제출한 답변(%{total_size_mb} MB)은 2MB 미만이어야 합니다.' + course/assessment/answer/text_response: + attributes: + attachments: + unique: '파일 이름은 중복되어선 안 됩니다' + course/assessment/category: + deletion: '마지막 카테고리는 삭제할 수 없습니다' + course/assessment/question/multiple_response: + attributes: + options: + no_option: '최소한 하나의 옵션을 포함해야 합니다.' + no_correct_option: '최소한 하나의 정답 옵션을 포함해야 합니다.' + course/assessment/question/rubric_based_response: + attributes: + categories: + reserved_category_name: '조정은 예약된 카테고리 이름이므로 사용할 수 없습니다' + duplicate_category_names: '카테고리 이름은 질문 루브릭 내에서 고유해야 합니다' + at_least_one_category: '최소한 하나의 루브릭 카테고리가 필요합니다' + course/assessment/question/rubric_based_response_category: + attributes: + criterions: + duplicate_grades_within_category: '카테고리 내의 점수는 중복될 수 없습니다' + at_least_one_grade: '각 카테고리에는 최소 하나의 점수가 필요합니다' + grade_zero_missing: '각 카테고리에는 0점 가 포함되어야 합니다' + grade_higher_than_maximum_grade: '점수는 최대 점수보다 작거나 같아야 합니다' + course/assessment/question/text_response: + attributes: + maximum_grade: + invalid_grade: '해답의 점수보다 낮을 수 없습니다' + course/assessment/question/text_response_comprehension_group: + attributes: + maximum_group_grade: + invalid_group_grade: '질문의 최대 점수를 초과할 수 없습니다' + course/assessment/question/text_response_comprehension_point: + attributes: + point_grade: + invalid_point_grade: '그룹의 최대 점수를 초과할 수 없습니다' + solutions: + more_than_one_compre_lifted_word_solution: '같은 점수에 대한 모든 선택된 단어는 한 줄에 함께 배치되어야 합니다' + course/assessment/question/text_response_comprehension_solution: + attributes: + solution_lemma: + solution_lemma_empty: '어떤 어휘 형태도 생성할 수 없습니다: 철자를 확인해 주세요' + information: + information_empty: '키워드 솔루션은 비워둘 수 없습니다' + course/assessment/question/text_response_solution: + attributes: + grade: + invalid_grade: '질문의 최대 점수를 초과할 수 없습니다' + course/assessment/question_bundle_assignment: + attributes: + submission: + must_belong_to_assessment_and_user: '평가와 사용자에 속해야 합니다' + course/assessment/skill: + attributes: + course: + consistent_course: '동일한 과정에 속해야 합니다' + course/assessment/submission: + attributes: + experience_points_record: + inconsistent_user: '생성자는 코스 사용자 기록과 동일해야 합니다' + absent_award_attributes: '제출물에 대한 보상 속성이 없습니다. 다시 시도하거나 Coursemology팀에 문의하세요.' + submission_already_exists: '이미 제출물을 생성한 것 같습니다. 다시 시도하시겠습니까?' + no_bundles_assigned: '할당된 문제 묶음이 없습니다. 도움을 받으려면 강사에게 문의하세요.' + autograded_no_partial_answer: '업데이트된 답변이 아직 다시 제출되지 않았습니다. 제출을 완료하기 전에 모든 답변을 다시 제출하세요.' + course/assessment/tab: + deletion: '마지막 탭은 삭제할 수 없습니다' + course/condition: + attributes: + conditional: + not_in_same_course: '선택한 조건이 현재 조건과 동일한 코스에 있지 않습니다' + course/condition/achievement: + attributes: + achievement: + unique_dependency: '중복 조건을 가질 수 없습니다' + references_self: '자기 자신을 조건으로 가질 수 없습니다' + cyclic_dependency: '순환 의존성을 가질 수 없습니다' + course/condition/assessment: + attributes: + assessment: + unique_dependency: '중복 조건을 가질 수 없습니다' + references_self: '자신 자신을 조건으로 가질 수 없습니다' + cyclic_dependency: '순환 의존성을 가질 수 없습니다' + course/condition/scholaistic_assessment: + attributes: + scholaistic_assessment: + unique_dependency: '중복 조건을 가질 수 없습니다' + references_self: '자신 자신을 조건으로 가질 수 없습니다' + course/condition/survey: + attributes: + survey: + unique_dependency: '중복 조건을 가질 수 없습니다' + references_self: '자기 자신을 조건으로 가질 수 없습니다' + cyclic_dependency: '순환 의존성을 가질 수 없습니다' + course/condition/video: + attributes: + video: + unique_dependency: '중복 조건을 가질 수 없습니다' + references_self: '자기 자신을 조건으로 가질 수 없습니다' + cyclic_dependency: '순환 의존성을 가질 수 없습니다' + course/discussion/post: + attributes: + post: + topic_inconsistent: '게시물과 부모 게시물이 다른 주제를 참조하고 있습니다.' + course/enrol_request: + user_in_course: '이미 이 과정에 등록된 것 같습니다. 페이지를 새로고침해 보시겠습니까?' + existing_pending_request: '이미 등록 요청을 제출한 것 같습니다.' + attributes: + base: + deletion: '가입 신청이 처리되었으므로 취소할 수 없습니다.' + course/group_user: + not_enrolled: '그룹과 동일한 과정에 등록되어 있어야 합니다' + course/learning_rate_record: + attributes: + learning_rate: + less_than_min: '유효한 최소값 이상이어야 합니다' + greater_than_max: '유효한 최대값 이하여야 합니다' + course/lesson_plan/item: + attributes: + bonus_end_at: + required: '시간 보너스 경험치가 설정된 경우 비워 둘 수 없습니다' + reference_times: + must_have_at_most_one_default: '기본값은 최대 하나여야 합니다' + course/monitoring/heartbeat: + attributes: + seb_payload: + invalid_seb_payload: 'seb payload는 비어 있거나 유효한 JSON 객체여야 합니다' + course/monitoring/monitor: + attributes: + enabled: + must_be_password_protected: '평가는 활성화를 위해 비밀번호로 보호되어야 합니다' + max_interval_ms: + greater_than_min_interval: '최소 간격보다 커야 합니다' + blocks: + must_have_browser_authorization_and_session_protection: '브라우저 인증 및 세션 보호가 활성화되어 있어야 합니다' + seb_config_key: + required_if_using_seb_config_key_browser_authorization: 'seb 구성 키 브라우저 인증 방법을 사용하는 경우 seb 구성 키가 필요합니다' + course/personal_time: + attributes: + start_at: + cannot_be_after_end_at: '종료 시각 이후일 수 없습니다' + course/reference_time: + attributes: + reference_timeline: + cannot_destroy_in_default_timeline: '기본 참조 타임라인에서 시간을 삭제할 수 없습니다' + start_at: + cannot_be_after_end_at: '종료 시각 이후일 수 없습니다' + lesson_plan_item: + must_be_in_same_course: '참조 타임라인과 동일한 과정에 있어야 합니다' + course/reference_timeline: + attributes: + default: + taken: '기본 참조 타임라인은 하나만 가질 수 있습니다' + cannot_destroy: '기본 참조 타임라인을 삭제할 수 없습니다' + course/scholaistic_assessment: + attributes: + time_bonus_exp: + bonus_attributes_not_allowed: '보너스 속성은 허용되지 않습니다' + course/survey/answer: '이 질문의 답변은 비워둘 수 없습니다.' + course/user_achievement: + attributes: + course_user: + not_in_course: '선택한 사용자가 지정된 코스에 없습니다' + course/user_invitation: '이 이메일 주소에는 아직 완료되지 않은 초대장이 있습니다' + course/video: + attributes: + url: + invalid_url: '입력하신 URL의 형식이 올바르지 않습니다. 다시 시도해 주세요.' + course/video/session: + attributes: + session_start: + cannot_be_after_session_end: '세션은 종료 후에 시작할 수 없습니다' + course/video/submission: + attributes: + experience_points_record: + inconsistent_user: '생성자는 코스 사용자 기록과 동일해야 합니다' + submission_already_exists: '이미 제출을 생성한 것 같습니다. 다시 시도하시겠습니까?' + course/video/tab: + deletion: '마지막 탭은 삭제할 수 없습니다' + course_user: + attributes: + reference_timeline: + belongs_to_course: '코스에 속해야 합니다' + duplication_traceable: + attributes: + source_id: + must_exist: '소스는 존재해야 하며 dependent_class의 인스턴스여야 합니다.' + generic_announcement: + attributes: + end_at: + cannot_be_before_start_at: '시작 시각보다 이를 수 없습니다' + instance/user_role_request: + attributes: + base: + existing_pending_request: '이미 존재하는 역할 요청이 있습니다. 페이지를 새로고침 해주세요.' + messages: + filename_validator: + invalid_characters: '%{characters}는 허용되지 않습니다.' + tailing_dots: '끝에 점이 올 수 없습니다.' + whitespaces: '앞이나 뒤에 공백이 올 수 없습니다.' + time_zone_validator: + invalid_time_zone: '시간대가 유효하지 않습니다.' diff --git a/config/locales/ko/activerecord/filename_validator.yml b/config/locales/ko/activerecord/filename_validator.yml deleted file mode 100644 index dffbcc667ea..00000000000 --- a/config/locales/ko/activerecord/filename_validator.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - messages: - filename_validator: - invalid_characters: '%{characters}는 허용되지 않습니다.' - tailing_dots: '끝에 점이 올 수 없습니다.' - whitespaces: '앞이나 뒤에 공백이 올 수 없습니다.' diff --git a/config/locales/ko/activerecord/generic_announcement.yml b/config/locales/ko/activerecord/generic_announcement.yml deleted file mode 100644 index 11d4e888419..00000000000 --- a/config/locales/ko/activerecord/generic_announcement.yml +++ /dev/null @@ -1,8 +0,0 @@ -ko: - activerecord: - errors: - models: - generic_announcement: - attributes: - end_at: - cannot_be_before_start_at: '시작 시각보다 이를 수 없습니다' diff --git a/config/locales/ko/activerecord/instance.yml b/config/locales/ko/activerecord/instance.yml deleted file mode 100644 index ecbedb1e136..00000000000 --- a/config/locales/ko/activerecord/instance.yml +++ /dev/null @@ -1,9 +0,0 @@ -ko: - activerecord: - errors: - models: - instance/user_role_request: - attributes: - base: - existing_pending_request: > - '이미 존재하는 역할 요청이 있습니다. 페이지를 새로고침 해주세요.' diff --git a/config/locales/ko/activerecord/time_zone_validator.yml b/config/locales/ko/activerecord/time_zone_validator.yml deleted file mode 100644 index f33a36e174b..00000000000 --- a/config/locales/ko/activerecord/time_zone_validator.yml +++ /dev/null @@ -1,6 +0,0 @@ -ko: - activerecord: - errors: - messages: - time_zone_validator: - invalid_time_zone: '시간대가 유효하지 않습니다.' diff --git a/config/locales/ko/course/lesson_plan/items.yml b/config/locales/ko/course/lesson_plan/items.yml deleted file mode 100644 index 45c7e34b0de..00000000000 --- a/config/locales/ko/course/lesson_plan/items.yml +++ /dev/null @@ -1,11 +0,0 @@ -ko: - activerecord: - attributes: - course/lesson_plan/item: - reference_times: '참조 시간' - errors: - models: - course/lesson_plan/item: - attributes: - reference_times: - must_have_at_most_one_default: '기본값은 최대 하나여야 합니다' diff --git a/config/locales/zh/activerecord/attributes.yml b/config/locales/zh/activerecord/attributes.yml new file mode 100644 index 00000000000..ab0470c80aa --- /dev/null +++ b/config/locales/zh/activerecord/attributes.yml @@ -0,0 +1,70 @@ +zh: + activerecord: + course/assessment/question: + question_number: '问题 %{index}' + question_with_title: '%{question_number}: %{title}' + attributes: + course: + reference_timelines: '引用时间线' + course/assessment/answer: + submitted_at: '提交于' + grade: '评分' + grader: '评分人' + graded_at: '批改于' + course/assessment/category: + weight: '权重' + course/assessment/category/title: + default: '评估' + course/assessment/question: + weight: '权重' + course/assessment/submission: + grade: '总分' + status: '状态' + submitted_at: :'activerecord.attributes.course/assessment/answer.submitted_at' + grader: :'activerecord.attributes.course/assessment/answer.grader' + graded_at: :'activerecord.attributes.course/assessment/answer.graded_at' + attempting: '练习' + submitted: '已提交' + graded: '已评分,未公布' + published: '已评分' + course/assessment/tab: + weight: '权重' + course/assessment/tab/title: + default: '默认值' + course/condition/assessment/title: + minimum_score: '至少取得%{minimum_grade_percentage}以完成%{assessment_title}' + complete: '已完成%{assessment_title}' + course/condition/level/title: + title: '等级 %{value}' + course/condition/scholaistic_assessment/title: + complete: '已完成%{title}' + course/condition/survey/title: + complete: '已完成 %{survey_title}' + course/condition/video/title: + complete: '观看 %{video_title}' + course/discussion/post: + title_reply_template: '回复 %{title}' + course/experience_points_record: + points_awarded: '经验值奖励已获取' + course/forum/topic/topic_type: + normal: '常规' + announcement: '公告' + question: '提问' + sticky: '便签' + course/group_user: + manager: '讲师' + course/lesson_plan/item: + base_exp: '经验值' + time_bonus_exp: '奖励经验值' + reference_times: '引用时间' + course/video/tab: + weight: '权重' + course/video/tab/title: + default: '默认' + models: + course/assessment/question/rubric_based_response: + rubric_based_response: '评分标准问题' + course/assessment/question/text_response: + text_response: '简答题' + file_upload: '上传答案文件题' + comprehension: '理解题' diff --git a/config/locales/zh/activerecord/course.yml b/config/locales/zh/activerecord/course.yml deleted file mode 100644 index 8fbdb5e86d9..00000000000 --- a/config/locales/zh/activerecord/course.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - activerecord: - attributes: - course: - reference_timelines: '引用时间线' - errors: - models: - course: - attributes: - reference_timelines: - must_have_at_most_one_default: '至少要包含一个默认值' diff --git a/config/locales/zh/activerecord/course/announcement.yml b/config/locales/zh/activerecord/course/announcement.yml deleted file mode 100644 index d0424a34e44..00000000000 --- a/config/locales/zh/activerecord/course/announcement.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/announcement: - attributes: - end_at: - cannot_be_before_start_at: '不能早于起始时间' diff --git a/config/locales/zh/activerecord/course/assessment.yml b/config/locales/zh/activerecord/course/assessment.yml deleted file mode 100644 index e3dbb7dfd30..00000000000 --- a/config/locales/zh/activerecord/course/assessment.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment: - attributes: - tab: - not_in_same_course: > - 您选择的项目与测验不在同一课程中 - no_test_type_chosen: > - 至少要选择一种测试案例进行评分和经验值计算 diff --git a/config/locales/zh/activerecord/course/assessment/answer.yml b/config/locales/zh/activerecord/course/assessment/answer.yml deleted file mode 100644 index 0912969a05e..00000000000 --- a/config/locales/zh/activerecord/course/assessment/answer.yml +++ /dev/null @@ -1,20 +0,0 @@ -zh: - activerecord: - attributes: - course/assessment/answer: - submitted_at: '提交于' - grade: '评分' - grader: '评分人' - graded_at: '批改于' - errors: - models: - course/assessment/answer: - attributes: - question: - consistent_assessment: '必须隶属于同一测验' - submission: - attemptable_state: '必须处于练习状态' - grade: - no_blank_grade: '如果之前已评分,则成绩不能为空' - consistent_grade: '不能超过问题分数上限' - non_negative_grade: '不能为负' diff --git a/config/locales/zh/activerecord/course/assessment/answer/programming.yml b/config/locales/zh/activerecord/course/assessment/answer/programming.yml deleted file mode 100644 index dfcafb50180..00000000000 --- a/config/locales/zh/activerecord/course/assessment/answer/programming.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment/answer/programming: - attributes: - files: - exceed_size_limit: '您的答案 (%{total_size_mb} MB) 必须小于 2 MB。' diff --git a/config/locales/zh/activerecord/course/assessment/answer/text_response.yml b/config/locales/zh/activerecord/course/assessment/answer/text_response.yml deleted file mode 100644 index 758bdc1632c..00000000000 --- a/config/locales/zh/activerecord/course/assessment/answer/text_response.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment/answer/text_response: - attributes: - attachments: - unique: '文件名不能重复。' diff --git a/config/locales/zh/activerecord/course/assessment/category.yml b/config/locales/zh/activerecord/course/assessment/category.yml deleted file mode 100644 index b24aa471247..00000000000 --- a/config/locales/zh/activerecord/course/assessment/category.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - activerecord: - attributes: - course/assessment/category/title: - default: '评估' - course/assessment/category: - weight: '权重' - errors: - models: - course/assessment/category: - deletion: '最后一类不能删除' diff --git a/config/locales/zh/activerecord/course/assessment/question.yml b/config/locales/zh/activerecord/course/assessment/question.yml deleted file mode 100644 index 33f87a480e6..00000000000 --- a/config/locales/zh/activerecord/course/assessment/question.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - course/assessment/question: - question_number: '问题 %{index}' - question_with_title: '%{question_number}: %{title}' - attributes: - course/assessment/question: - weight: '权重' diff --git a/config/locales/zh/activerecord/course/assessment/question/multiple_response.yml b/config/locales/zh/activerecord/course/assessment/question/multiple_response.yml deleted file mode 100644 index ddc85386b97..00000000000 --- a/config/locales/zh/activerecord/course/assessment/question/multiple_response.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment/question/multiple_response: - attributes: - options: - no_option: '至少要包含一个选项。' - no_correct_option: '至少要包含一个正确选项。' diff --git a/config/locales/zh/activerecord/course/assessment/question/rubric_based_response.yml b/config/locales/zh/activerecord/course/assessment/question/rubric_based_response.yml deleted file mode 100644 index 76157370945..00000000000 --- a/config/locales/zh/activerecord/course/assessment/question/rubric_based_response.yml +++ /dev/null @@ -1,21 +0,0 @@ -zh: - activerecord: - attributes: - models: - course/assessment/question/rubric_based_response: - rubric_based_response: '评分标准问题' - errors: - models: - 'course/assessment/question/rubric_based_response': - attributes: - categories: - reserved_category_name: '“调整”是一个保留的类别名称,因此无法使用' - duplicate_category_names: '类别名称必须在问题评分标准中唯一' - at_least_one_category: '至少需要一个评分标准类别' - 'course/assessment/question/rubric_based_response_category': - attributes: - criterions: - duplicate_grades_within_category: '每个类别中的分数必须唯一' - at_least_one_grade: '每个类别至少需要一个分数' - grade_zero_missing: '每个类别必须包含0分等级' - grade_higher_than_maximum_grade: '分数必须小于或等于最大分数' diff --git a/config/locales/zh/activerecord/course/assessment/question/text_response.yml b/config/locales/zh/activerecord/course/assessment/question/text_response.yml deleted file mode 100644 index c77bc82f39c..00000000000 --- a/config/locales/zh/activerecord/course/assessment/question/text_response.yml +++ /dev/null @@ -1,14 +0,0 @@ -zh: - activerecord: - attributes: - models: - course/assessment/question/text_response: - text_response: '简答题' - file_upload: '上传答案文件题' - comprehension: '理解题' - errors: - models: - course/assessment/question/text_response: - attributes: - maximum_grade: - invalid_grade: '不能低于答案的最低分数' diff --git a/config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_group.yml b/config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_group.yml deleted file mode 100644 index d88c525c3b7..00000000000 --- a/config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_group.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment/question/text_response_comprehension_group: - attributes: - maximum_group_grade: - invalid_group_grade: '不能超过该问题的分数上限' diff --git a/config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_point.yml b/config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_point.yml deleted file mode 100644 index b87dd43112c..00000000000 --- a/config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_point.yml +++ /dev/null @@ -1,10 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment/question/text_response_comprehension_point: - attributes: - point_grade: - invalid_point_grade: '不能超过该组分数的上限' - solutions: - more_than_one_compre_lifted_word_solution: '同一点被选中的词必须放在同一行' diff --git a/config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_solution.yml b/config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_solution.yml deleted file mode 100644 index d599843a5d9..00000000000 --- a/config/locales/zh/activerecord/course/assessment/question/text_response_comprehension_solution.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment/question/text_response_comprehension_solution: - attributes: - solution_lemma: - solution_lemma_empty: '无法生成任何词条形式:请检查你的拼写。' - information: - information_empty: '关键字不能为空' - diff --git a/config/locales/zh/activerecord/course/assessment/question/text_response_solution.yml b/config/locales/zh/activerecord/course/assessment/question/text_response_solution.yml deleted file mode 100644 index c8067c3a9c6..00000000000 --- a/config/locales/zh/activerecord/course/assessment/question/text_response_solution.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment/question/text_response_solution: - attributes: - grade: - invalid_grade: '不能超过该问题的分数上限' diff --git a/config/locales/zh/activerecord/course/assessment/question_bundle_assignment.yml b/config/locales/zh/activerecord/course/assessment/question_bundle_assignment.yml deleted file mode 100644 index 03cd5e20c10..00000000000 --- a/config/locales/zh/activerecord/course/assessment/question_bundle_assignment.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment/question_bundle_assignment: - attributes: - submission: - must_belong_to_assessment_and_user: '必须属于某个测验和某个用户' - diff --git a/config/locales/zh/activerecord/course/assessment/skill.yml b/config/locales/zh/activerecord/course/assessment/skill.yml deleted file mode 100644 index dfcb5b376aa..00000000000 --- a/config/locales/zh/activerecord/course/assessment/skill.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - activerecord: - errors: - models: - course/assessment/skill: - attributes: - course: - consistent_course: '必须属于同一课程' - diff --git a/config/locales/zh/activerecord/course/assessment/submission.yml b/config/locales/zh/activerecord/course/assessment/submission.yml deleted file mode 100644 index 5b088d3ab24..00000000000 --- a/config/locales/zh/activerecord/course/assessment/submission.yml +++ /dev/null @@ -1,26 +0,0 @@ -zh: - activerecord: - attributes: - course/assessment/submission: - grade: '总分' - status: '状态' - submitted_at: :'activerecord.attributes.course/assessment/answer.submitted_at' - grader: :'activerecord.attributes.course/assessment/answer.grader' - graded_at: :'activerecord.attributes.course/assessment/answer.graded_at' - attempting: '练习' - submitted: '已提交' - graded: '已评分,未公布' - published: '已评分' - errors: - models: - course/assessment/submission: - attributes: - experience_points_record: - inconsistent_user: '创建者必须与课程使用者记录一致' - absent_award_attributes: > - 您提交的材料没有奖励属性,请再试一次或联系开发团队 - submission_already_exists: '您可能已经创建过一个提交了,要覆盖吗?' - no_bundles_assigned: '当前没有问题分配给你,请联系你的老师寻求帮助。' - autograded_no_partial_answer: '有一些更新的答案还没有重新提交。请在最后提交前重新提交所有答案。' - course/assessment/category: - deletion: '最后一类无法删除' diff --git a/config/locales/zh/activerecord/course/assessment/tab.yml b/config/locales/zh/activerecord/course/assessment/tab.yml deleted file mode 100644 index 33842f1d862..00000000000 --- a/config/locales/zh/activerecord/course/assessment/tab.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - activerecord: - attributes: - course/assessment/tab/title: - default: '默认值' - course/assessment/tab: - weight: '权重' - errors: - models: - course/assessment/tab: - deletion: '最后一项无法被删除' diff --git a/config/locales/zh/activerecord/course/condition/achievement.yml b/config/locales/zh/activerecord/course/condition/achievement.yml deleted file mode 100644 index fbfc6055f1e..00000000000 --- a/config/locales/zh/activerecord/course/condition/achievement.yml +++ /dev/null @@ -1,10 +0,0 @@ -zh: - activerecord: - errors: - models: - course/condition/achievement: - attributes: - achievement: - unique_dependency: '不能包含重复的解锁条件' - references_self: '不能将它自己作为解锁条件' - cyclic_dependency: '不能包含循环的依赖' diff --git a/config/locales/zh/activerecord/course/condition/assessment.yml b/config/locales/zh/activerecord/course/condition/assessment.yml deleted file mode 100644 index cbd8455a10a..00000000000 --- a/config/locales/zh/activerecord/course/condition/assessment.yml +++ /dev/null @@ -1,14 +0,0 @@ -zh: - activerecord: - attributes: - course/condition/assessment/title: - minimum_score: '至少取得%{minimum_grade_percentage}以完成%{assessment_title}' - complete: '已完成%{assessment_title}' - errors: - models: - course/condition/assessment: - attributes: - assessment: - unique_dependency: '不能包含重复的解锁条件' - references_self: '不能将它自己作为解锁条件' - cyclic_dependency: '不能包含循环的依赖' diff --git a/config/locales/zh/activerecord/course/condition/condition.yml b/config/locales/zh/activerecord/course/condition/condition.yml deleted file mode 100644 index 8a545e6df17..00000000000 --- a/config/locales/zh/activerecord/course/condition/condition.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/condition: - attributes: - conditional: - not_in_same_course: '您选择的条件与当前条件不在同一课程中' diff --git a/config/locales/zh/activerecord/course/condition/level.yml b/config/locales/zh/activerecord/course/condition/level.yml deleted file mode 100644 index e5a16a476c3..00000000000 --- a/config/locales/zh/activerecord/course/condition/level.yml +++ /dev/null @@ -1,5 +0,0 @@ -zh: - activerecord: - attributes: - course/condition/level/title: - title: '等级 %{value}' diff --git a/config/locales/zh/activerecord/course/condition/scholaistic_assessment.yml b/config/locales/zh/activerecord/course/condition/scholaistic_assessment.yml deleted file mode 100644 index 743c6320ac7..00000000000 --- a/config/locales/zh/activerecord/course/condition/scholaistic_assessment.yml +++ /dev/null @@ -1,12 +0,0 @@ -zh: - activerecord: - attributes: - course/condition/scholaistic_assessment/title: - complete: '已完成%{title}' - errors: - models: - course/condition/scholaistic_assessment: - attributes: - scholaistic_assessment: - unique_dependency: '不能包含重复的解锁条件' - references_self: '不能将它自己作为解锁条件' diff --git a/config/locales/zh/activerecord/course/condition/survey.yml b/config/locales/zh/activerecord/course/condition/survey.yml deleted file mode 100644 index 66a90979498..00000000000 --- a/config/locales/zh/activerecord/course/condition/survey.yml +++ /dev/null @@ -1,14 +0,0 @@ -zh: - activerecord: - attributes: - course/condition/survey/title: - complete: '已完成 %{survey_title}' - errors: - models: - course/condition/survey: - attributes: - survey: - unique_dependency: '不能包含重复的解锁条件' - references_self: '不能将它自己作为解锁条件' - cyclic_dependency: '不能包含循环的依赖' - diff --git a/config/locales/zh/activerecord/course/condition/video.yml b/config/locales/zh/activerecord/course/condition/video.yml deleted file mode 100644 index c5de37dc8e1..00000000000 --- a/config/locales/zh/activerecord/course/condition/video.yml +++ /dev/null @@ -1,13 +0,0 @@ -zh: - activerecord: - attributes: - course/condition/video/title: - complete: '观看 %{video_title}' - errors: - models: - course/condition/video: - attributes: - video: - unique_dependency: '不能包含重复的解锁条件' - references_self: '不能将它自己作为解锁条件' - cyclic_dependency: '不能包含循环的依赖' diff --git a/config/locales/zh/activerecord/course/discussion/post.yml b/config/locales/zh/activerecord/course/discussion/post.yml deleted file mode 100644 index 104030b1b83..00000000000 --- a/config/locales/zh/activerecord/course/discussion/post.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - activerecord: - attributes: - course/discussion/post: - title_reply_template: '回复 %{title}' - errors: - models: - course/discussion/post: - attributes: - post: - topic_inconsistent: '当前帖子和它的父帖子引用了不同的主题。' diff --git a/config/locales/zh/activerecord/course/enrol_request.yml b/config/locales/zh/activerecord/course/enrol_request.yml deleted file mode 100644 index 587b4c63cc9..00000000000 --- a/config/locales/zh/activerecord/course/enrol_request.yml +++ /dev/null @@ -1,13 +0,0 @@ -zh: - activerecord: - errors: - models: - course/enrol_request: - user_in_course: > - 你可能已经参加这个课程了,要刷新页面吗? - existing_pending_request: > - 你可能已经提交过加入课程申请了。 - attributes: - base: - deletion: > - 由于加入课程申请已被处理,无法撤回。 diff --git a/config/locales/zh/activerecord/course/experience_points_record.yml b/config/locales/zh/activerecord/course/experience_points_record.yml deleted file mode 100644 index 9c40281cbc5..00000000000 --- a/config/locales/zh/activerecord/course/experience_points_record.yml +++ /dev/null @@ -1,5 +0,0 @@ -zh: - activerecord: - attributes: - course/experience_points_record: - points_awarded: '经验值奖励已获取' diff --git a/config/locales/zh/activerecord/course/forum/topic.yml b/config/locales/zh/activerecord/course/forum/topic.yml deleted file mode 100644 index 56679122c12..00000000000 --- a/config/locales/zh/activerecord/course/forum/topic.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - attributes: - course/forum/topic/topic_type: - normal: '常规' - announcement: '公告' - question: '提问' - sticky: '便签' diff --git a/config/locales/zh/activerecord/course/group_user.yml b/config/locales/zh/activerecord/course/group_user.yml deleted file mode 100644 index bfa09bab4b3..00000000000 --- a/config/locales/zh/activerecord/course/group_user.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - activerecord: - errors: - models: - course/group_user: - not_enrolled: '必须与小组成员加入在同一课程' - attributes: - course/group_user: - manager: '讲师' diff --git a/config/locales/zh/activerecord/course/learning_rate_record.yml b/config/locales/zh/activerecord/course/learning_rate_record.yml deleted file mode 100644 index f96c335cbe8..00000000000 --- a/config/locales/zh/activerecord/course/learning_rate_record.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - activerecord: - errors: - models: - course/learning_rate_record: - attributes: - learning_rate: - less_than_min: '必须大于有效最小值' - greater_than_max: '必须小于有效最小值' diff --git a/config/locales/zh/activerecord/course/lesson_plan.yml b/config/locales/zh/activerecord/course/lesson_plan.yml deleted file mode 100644 index 3de29169841..00000000000 --- a/config/locales/zh/activerecord/course/lesson_plan.yml +++ /dev/null @@ -1,12 +0,0 @@ -zh: - activerecord: - errors: - models: - course/lesson_plan/item: - attributes: - bonus_end_at: - required: '如果设置了时间奖励经验,则不能为空' - attributes: - course/lesson_plan/item: - base_exp: '经验值' - time_bonus_exp: '奖励经验值' diff --git a/config/locales/zh/activerecord/course/monitoring/heartbeat.yml b/config/locales/zh/activerecord/course/monitoring/heartbeat.yml deleted file mode 100644 index a47c9b5d524..00000000000 --- a/config/locales/zh/activerecord/course/monitoring/heartbeat.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/monitoring/heartbeat: - attributes: - seb_payload: - invalid_seb_payload: 'seb payload 必须为空或为有效的 JSON 对象' diff --git a/config/locales/zh/activerecord/course/monitoring/monitor.yml b/config/locales/zh/activerecord/course/monitoring/monitor.yml deleted file mode 100644 index 63a58d888d1..00000000000 --- a/config/locales/zh/activerecord/course/monitoring/monitor.yml +++ /dev/null @@ -1,14 +0,0 @@ -zh: - activerecord: - errors: - models: - course/monitoring/monitor: - attributes: - enabled: - must_be_password_protected: '评估必须受密码保护才能启用' - max_interval_ms: - greater_than_min_interval: '必须大于最小间隔' - blocks: - must_have_browser_authorization_and_session_protection: '必须启用浏览器授权和会话保护' - seb_config_key: - required_if_using_seb_config_key_browser_authorization: '使用 seb 配置密钥浏览器授权方法时必须提供 seb 配置密钥' diff --git a/config/locales/zh/activerecord/course/personal_time.yml b/config/locales/zh/activerecord/course/personal_time.yml deleted file mode 100644 index ec4d2a4169f..00000000000 --- a/config/locales/zh/activerecord/course/personal_time.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/personal_time: - attributes: - start_at: - cannot_be_after_end_at: '不能晚于结束时间' diff --git a/config/locales/zh/activerecord/course/reference_time.yml b/config/locales/zh/activerecord/course/reference_time.yml deleted file mode 100644 index ec78b88ad86..00000000000 --- a/config/locales/zh/activerecord/course/reference_time.yml +++ /dev/null @@ -1,12 +0,0 @@ -zh: - activerecord: - errors: - models: - course/reference_time: - attributes: - reference_timeline: - cannot_destroy_in_default_timeline: '无法修改默认参考时间线' - start_at: - cannot_be_after_end_at: '不能晚于结束时间' - lesson_plan_item: - must_be_in_same_course: '必须与参考时间线在同一课程中' diff --git a/config/locales/zh/activerecord/course/reference_timeline.yml b/config/locales/zh/activerecord/course/reference_timeline.yml deleted file mode 100644 index c4d317464b7..00000000000 --- a/config/locales/zh/activerecord/course/reference_timeline.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - activerecord: - errors: - models: - course/reference_timeline: - attributes: - default: - taken: '只能有一个默认参考时间轴' - cannot_destroy: '无法删除默认参考时间轴' diff --git a/config/locales/zh/activerecord/course/scholaistic_assessment.yml b/config/locales/zh/activerecord/course/scholaistic_assessment.yml deleted file mode 100644 index bbb2bddc78b..00000000000 --- a/config/locales/zh/activerecord/course/scholaistic_assessment.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/scholaistic_assessment: - attributes: - time_bonus_exp: - bonus_attributes_not_allowed: '不允许使用奖励属性' diff --git a/config/locales/zh/activerecord/course/survey/answer.yml b/config/locales/zh/activerecord/course/survey/answer.yml deleted file mode 100644 index 6e952401e44..00000000000 --- a/config/locales/zh/activerecord/course/survey/answer.yml +++ /dev/null @@ -1,6 +0,0 @@ -zh: - activerecord: - errors: - models: - course/survey/answer: - cannot_be_empty: '这个问题的答案不能为空。' diff --git a/config/locales/zh/activerecord/course/user_achievement.yml b/config/locales/zh/activerecord/course/user_achievement.yml deleted file mode 100644 index 035f2bc8192..00000000000 --- a/config/locales/zh/activerecord/course/user_achievement.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/user_achievement: - attributes: - course_user: - not_in_course: '选中的用户不在指定课程中' diff --git a/config/locales/zh/activerecord/course/user_invitation.yml b/config/locales/zh/activerecord/course/user_invitation.yml deleted file mode 100644 index ba433b34ab6..00000000000 --- a/config/locales/zh/activerecord/course/user_invitation.yml +++ /dev/null @@ -1,6 +0,0 @@ -zh: - activerecord: - errors: - models: - course/user_invitation: - existing_invitation: '此电子邮件地址已存在一个未完成的邀请' diff --git a/config/locales/zh/activerecord/course/video.yml b/config/locales/zh/activerecord/course/video.yml deleted file mode 100644 index e7333d832fe..00000000000 --- a/config/locales/zh/activerecord/course/video.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - activerecord: - errors: - models: - course/video: - attributes: - url: - invalid_url: > - 您输入的URL格式不正确,请重试。 diff --git a/config/locales/zh/activerecord/course/video/session.yml b/config/locales/zh/activerecord/course/video/session.yml deleted file mode 100644 index fd5deae18e7..00000000000 --- a/config/locales/zh/activerecord/course/video/session.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course/video/session: - attributes: - session_start: - cannot_be_after_session_end: '课时开始时间不能晚于结束时间' diff --git a/config/locales/zh/activerecord/course/video/submission.yml b/config/locales/zh/activerecord/course/video/submission.yml deleted file mode 100644 index fa9d3e0e484..00000000000 --- a/config/locales/zh/activerecord/course/video/submission.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - activerecord: - errors: - models: - course/video/submission: - attributes: - experience_points_record: - inconsistent_user: '创建者必须与课程使用者记录一致' - submission_already_exists: '您可能已经创建过一个提交了,要覆盖吗?' diff --git a/config/locales/zh/activerecord/course/video/tab.yml b/config/locales/zh/activerecord/course/video/tab.yml deleted file mode 100644 index a719df449d0..00000000000 --- a/config/locales/zh/activerecord/course/video/tab.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - activerecord: - attributes: - course/video/tab/title: - default: '默认' - course/video/tab: - weight: '权重' - errors: - models: - course/video/tab: - deletion: '最后一项无法被删除' diff --git a/config/locales/zh/activerecord/course_user.yml b/config/locales/zh/activerecord/course_user.yml deleted file mode 100644 index 5093ea8f989..00000000000 --- a/config/locales/zh/activerecord/course_user.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - course_user: - attributes: - reference_timeline: - belongs_to_course: '必须隶属于课程' diff --git a/config/locales/zh/activerecord/duplication_traceable.yml b/config/locales/zh/activerecord/duplication_traceable.yml deleted file mode 100644 index 61b51db82f0..00000000000 --- a/config/locales/zh/activerecord/duplication_traceable.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - duplication_traceable: - attributes: - source_id: - must_exist: '源必须存在并且是dependent_class的一个实例。' diff --git a/config/locales/zh/activerecord/errors.yml b/config/locales/zh/activerecord/errors.yml new file mode 100644 index 00000000000..c9696fd92dd --- /dev/null +++ b/config/locales/zh/activerecord/errors.yml @@ -0,0 +1,231 @@ +zh: + activerecord: + errors: + models: + course: + attributes: + reference_timelines: + must_have_at_most_one_default: '至少要包含一个默认值' + course/announcement: + attributes: + end_at: + cannot_be_before_start_at: '不能早于起始时间' + course/assessment: + attributes: + no_test_type_chosen: '至少要选择一种测试案例进行评分和经验值计算' + tab: + not_in_same_course: '您选择的项目与测验不在同一课程中' + course/assessment/answer: + attributes: + question: + consistent_assessment: '必须隶属于同一测验' + submission: + attemptable_state: '必须处于练习状态' + grade: + no_blank_grade: '如果之前已评分,则成绩不能为空' + consistent_grade: '不能超过问题分数上限' + non_negative_grade: '不能为负' + course/assessment/answer/programming: + attributes: + files: + exceed_size_limit: '您的答案 (%{total_size_mb} MB) 必须小于 2 MB。' + course/assessment/answer/text_response: + attributes: + attachments: + unique: '文件名不能重复。' + course/assessment/category: + deletion: '最后一类不能删除' + course/assessment/question/multiple_response: + attributes: + options: + no_option: '至少要包含一个选项。' + no_correct_option: '至少要包含一个正确选项。' + course/assessment/question/rubric_based_response: + attributes: + categories: + reserved_category_name: '"调整"是一个保留的类别名称,因此无法使用' + duplicate_category_names: '类别名称必须在问题评分标准中唯一' + at_least_one_category: '至少需要一个评分标准类别' + course/assessment/question/rubric_based_response_category: + attributes: + criterions: + duplicate_grades_within_category: '每个类别中的分数必须唯一' + at_least_one_grade: '每个类别至少需要一个分数' + grade_zero_missing: '每个类别必须包含0分等级' + grade_higher_than_maximum_grade: '分数必须小于或等于最大分数' + course/assessment/question/text_response: + attributes: + maximum_grade: + invalid_grade: '不能低于答案的最低分数' + course/assessment/question/text_response_comprehension_group: + attributes: + maximum_group_grade: + invalid_group_grade: '不能超过该问题的分数上限' + course/assessment/question/text_response_comprehension_point: + attributes: + point_grade: + invalid_point_grade: '不能超过该组分数的上限' + solutions: + more_than_one_compre_lifted_word_solution: '同一点被选中的词必须放在同一行' + course/assessment/question/text_response_comprehension_solution: + attributes: + solution_lemma: + solution_lemma_empty: '无法生成任何词条形式:请检查你的拼写。' + information: + information_empty: '关键字不能为空' + course/assessment/question/text_response_solution: + attributes: + grade: + invalid_grade: '不能超过该问题的分数上限' + course/assessment/question_bundle_assignment: + attributes: + submission: + must_belong_to_assessment_and_user: '必须属于某个测验和某个用户' + course/assessment/skill: + attributes: + course: + consistent_course: '必须属于同一课程' + course/assessment/submission: + attributes: + experience_points_record: + inconsistent_user: '创建者必须与课程使用者记录一致' + absent_award_attributes: '您提交的材料没有奖励属性,请再试一次或联系开发团队' + submission_already_exists: '您可能已经创建过一个提交了,要覆盖吗?' + no_bundles_assigned: '当前没有问题分配给你,请联系你的老师寻求帮助。' + autograded_no_partial_answer: '有一些更新的答案还没有重新提交。请在最后提交前重新提交所有答案。' + course/assessment/tab: + deletion: '最后一项无法被删除' + course/condition: + attributes: + conditional: + not_in_same_course: '您选择的条件与当前条件不在同一课程中' + course/condition/achievement: + attributes: + achievement: + unique_dependency: '不能包含重复的解锁条件' + references_self: '不能将它自己作为解锁条件' + cyclic_dependency: '不能包含循环的依赖' + course/condition/assessment: + attributes: + assessment: + unique_dependency: '不能包含重复的解锁条件' + references_self: '不能将它自己作为解锁条件' + cyclic_dependency: '不能包含循环的依赖' + course/condition/scholaistic_assessment: + attributes: + scholaistic_assessment: + unique_dependency: '不能包含重复的解锁条件' + references_self: '不能将它自己作为解锁条件' + course/condition/survey: + attributes: + survey: + unique_dependency: '不能包含重复的解锁条件' + references_self: '不能将它自己作为解锁条件' + cyclic_dependency: '不能包含循环的依赖' + course/condition/video: + attributes: + video: + unique_dependency: '不能包含重复的解锁条件' + references_self: '不能将它自己作为解锁条件' + cyclic_dependency: '不能包含循环的依赖' + course/discussion/post: + attributes: + post: + topic_inconsistent: '当前帖子和它的父帖子引用了不同的主题。' + course/enrol_request: + user_in_course: '你可能已经参加这个课程了,要刷新页面吗?' + existing_pending_request: '你可能已经提交过加入课程申请了。' + attributes: + base: + deletion: '由于加入课程申请已被处理,无法撤回。' + course/learning_rate_record: + attributes: + learning_rate: + less_than_min: '必须大于有效最小值' + greater_than_max: '必须小于有效最小值' + course/lesson_plan/item: + attributes: + bonus_end_at: + required: '如果设置了时间奖励经验,则不能为空' + reference_times: + must_have_at_most_one_default: '至少要有一个默认值' + course/monitoring/heartbeat: + attributes: + seb_payload: + invalid_seb_payload: 'seb payload 必须为空或为有效的 JSON 对象' + course/monitoring/monitor: + attributes: + enabled: + must_be_password_protected: '评估必须受密码保护才能启用' + max_interval_ms: + greater_than_min_interval: '必须大于最小间隔' + blocks: + must_have_browser_authorization_and_session_protection: '必须启用浏览器授权和会话保护' + seb_config_key: + required_if_using_seb_config_key_browser_authorization: '使用 seb 配置密钥浏览器授权方法时必须提供 seb 配置密钥' + course/personal_time: + attributes: + start_at: + cannot_be_after_end_at: '不能晚于结束时间' + course/reference_time: + attributes: + reference_timeline: + cannot_destroy_in_default_timeline: '无法修改默认参考时间线' + start_at: + cannot_be_after_end_at: '不能晚于结束时间' + lesson_plan_item: + must_be_in_same_course: '必须与参考时间线在同一课程中' + course/reference_timeline: + attributes: + default: + taken: '只能有一个默认参考时间轴' + cannot_destroy: '无法删除默认参考时间轴' + course/scholaistic_assessment: + attributes: + time_bonus_exp: + bonus_attributes_not_allowed: '不允许使用奖励属性' + course/survey/answer: '这个问题的答案不能为空。' + course/user_achievement: + attributes: + course_user: + not_in_course: '选中的用户不在指定课程中' + course/user_invitation: '此电子邮件地址已存在一个未完成的邀请' + course/video: + attributes: + url: + invalid_url: '您输入的URL格式不正确,请重试。' + course/video/session: + attributes: + session_start: + cannot_be_after_session_end: '课时开始时间不能晚于结束时间' + course/video/submission: + attributes: + experience_points_record: + inconsistent_user: '创建者必须与课程使用者记录一致' + submission_already_exists: '您可能已经创建过一个提交了,要覆盖吗?' + course/video/tab: + deletion: '最后一项无法被删除' + course_user: + attributes: + reference_timeline: + belongs_to_course: '必须隶属于课程' + duplication_traceable: + attributes: + source_id: + must_exist: '源必须存在并且是dependent_class的一个实例。' + generic_announcement: + attributes: + end_at: + cannot_be_before_start_at: '不能早于起始时间' + instance/user_role_request: + attributes: + base: + existing_pending_request: > + '你有一个已存在的身份变更请求,请刷新页面。' + messages: + filename_validator: + invalid_characters: '%{characters}不合法。' + tailing_dots: '点号不能出现在文件名末尾。' + whitespaces: '空格不能出现在文件名开头或末尾。' + time_zone_validator: + invalid_time_zone: '时区不可用。' diff --git a/config/locales/zh/activerecord/filename_validator.yml b/config/locales/zh/activerecord/filename_validator.yml deleted file mode 100644 index 5d61bdbc6a8..00000000000 --- a/config/locales/zh/activerecord/filename_validator.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - messages: - filename_validator: - invalid_characters: '%{characters}不合法。' - tailing_dots: '点号不能出现在文件名末尾。' - whitespaces: '空格不能出现在文件名开头或末尾。' diff --git a/config/locales/zh/activerecord/generic_announcement.yml b/config/locales/zh/activerecord/generic_announcement.yml deleted file mode 100644 index 34c4a6d0e23..00000000000 --- a/config/locales/zh/activerecord/generic_announcement.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - activerecord: - errors: - models: - generic_announcement: - attributes: - end_at: - cannot_be_before_start_at: '不能早于起始时间' diff --git a/config/locales/zh/activerecord/instance.yml b/config/locales/zh/activerecord/instance.yml deleted file mode 100644 index a82bac0934e..00000000000 --- a/config/locales/zh/activerecord/instance.yml +++ /dev/null @@ -1,9 +0,0 @@ -zh: - activerecord: - errors: - models: - instance/user_role_request: - attributes: - base: - existing_pending_request: > - '你有一个已存在的身份变更请求,请刷新页面。' diff --git a/config/locales/zh/activerecord/time_zone_validator.yml b/config/locales/zh/activerecord/time_zone_validator.yml deleted file mode 100644 index cddba7c4a7f..00000000000 --- a/config/locales/zh/activerecord/time_zone_validator.yml +++ /dev/null @@ -1,6 +0,0 @@ -zh: - activerecord: - errors: - messages: - time_zone_validator: - invalid_time_zone: '时区不可用。' diff --git a/config/locales/zh/course/lesson_plan/items.yml b/config/locales/zh/course/lesson_plan/items.yml deleted file mode 100644 index 3799e917899..00000000000 --- a/config/locales/zh/course/lesson_plan/items.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - activerecord: - attributes: - course/lesson_plan/item: - reference_times: '引用时间' - errors: - models: - course/lesson_plan/item: - attributes: - reference_times: - must_have_at_most_one_default: '至少要有一个默认值' From 2d0a4664359a3e63444604f60d21b5a81d0040fe Mon Sep 17 00:00:00 2001 From: adi-herwana-nus Date: Fri, 9 Jan 2026 09:41:53 +0800 Subject: [PATCH 4/4] feat(translations): consolidate miscellaneous error translations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Consolidate scattered error translations into dedicated errors.yml files for EN, KO, and ZH locales. This improves maintainability by organizing all error messages in a single location per language. Changes: - Created config/locales/{en,ko,zh}/errors.yml with all error translations - Updated 16 backend files to use new translation key paths with errors. prefix - Deleted 33 component-specific translation files (11 per language) - Fixed activerecord error structure in KO and ZH to match EN hierarchy All translation keys now follow the pattern: errors.{domain}.{component}.{key} 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- .../submission/submissions_controller.rb | 2 +- .../course/survey/responses_controller.rb | 2 +- .../course/user_invitations_controller.rb | 4 +- .../course/user_registrations_controller.rb | 4 +- app/controllers/user/emails_controller.rb | 2 +- .../user/registrations_controller.rb | 8 +- .../application_html_formatters_helper.rb | 2 +- app/helpers/application_jobs_helper.rb | 9 +- .../course/assessment/live_feedback/thread.rb | 2 +- app/models/user/email.rb | 2 +- ...ogramming_codaveri_auto_grading_service.rb | 2 +- .../assessment/authentication_service.rb | 2 +- ...programming_codaveri_evaluation_service.rb | 12 +-- .../programming_evaluation_service.rb | 9 +- .../session_authentication_service.rb | 2 +- .../course/user_registration_service.rb | 6 +- config/locales/en/common.yml | 4 - .../answer/programming_auto_grading.yml | 41 --------- .../assessment/live_feedback/thread.yml | 6 -- .../assessment/submission/submissions.yml | 8 -- config/locales/en/course/survey/responses.yml | 5 -- config/locales/en/course/user_invitations.yml | 6 -- .../locales/en/course/user_registrations.yml | 11 --- config/locales/en/course/users.yml | 13 --- config/locales/en/errors.yml | 85 +++++++++++++++++++ config/locales/en/layout.yml | 4 - config/locales/en/user/emails.yml | 7 -- config/locales/en/user/registrations.yml | 10 --- config/locales/ko/activerecord/errors.yml | 6 +- config/locales/ko/common.yml | 4 - .../answer/programming_auto_grading.yml | 36 -------- .../assessment/live_feedback/thread.yml | 6 -- .../assessment/submission/submissions.yml | 7 -- config/locales/ko/course/survey/responses.yml | 5 -- config/locales/ko/course/user_invitations.yml | 6 -- .../locales/ko/course/user_registrations.yml | 10 --- config/locales/ko/course/users.yml | 12 --- config/locales/ko/errors.yml | 79 +++++++++++++++++ config/locales/ko/layout.yml | 4 - config/locales/ko/user/emails.yml | 7 -- config/locales/ko/user/registrations.yml | 10 --- config/locales/zh/activerecord/errors.yml | 8 +- config/locales/zh/common.yml | 4 - .../answer/programming_auto_grading.yml | 35 -------- .../assessment/live_feedback/thread.yml | 6 -- .../assessment/submission/submissions.yml | 8 -- config/locales/zh/course/survey/responses.yml | 5 -- config/locales/zh/course/user_invitations.yml | 7 -- .../locales/zh/course/user_registrations.yml | 11 --- config/locales/zh/course/users.yml | 12 --- config/locales/zh/errors.yml | 79 +++++++++++++++++ config/locales/zh/layout.yml | 4 - config/locales/zh/user/emails.yml | 7 -- config/locales/zh/user/registrations.yml | 11 --- .../user/emails_controller_spec.rb | 2 +- .../programming_auto_grading_service_spec.rb | 4 +- 56 files changed, 295 insertions(+), 370 deletions(-) delete mode 100644 config/locales/en/common.yml delete mode 100644 config/locales/en/course/assessment/answer/programming_auto_grading.yml delete mode 100644 config/locales/en/course/assessment/live_feedback/thread.yml delete mode 100644 config/locales/en/course/assessment/submission/submissions.yml delete mode 100644 config/locales/en/course/survey/responses.yml delete mode 100644 config/locales/en/course/user_invitations.yml delete mode 100644 config/locales/en/course/user_registrations.yml delete mode 100644 config/locales/en/course/users.yml create mode 100644 config/locales/en/errors.yml delete mode 100644 config/locales/en/layout.yml delete mode 100644 config/locales/en/user/emails.yml delete mode 100644 config/locales/en/user/registrations.yml delete mode 100644 config/locales/ko/common.yml delete mode 100644 config/locales/ko/course/assessment/answer/programming_auto_grading.yml delete mode 100644 config/locales/ko/course/assessment/live_feedback/thread.yml delete mode 100644 config/locales/ko/course/assessment/submission/submissions.yml delete mode 100644 config/locales/ko/course/survey/responses.yml delete mode 100644 config/locales/ko/course/user_invitations.yml delete mode 100644 config/locales/ko/course/user_registrations.yml delete mode 100644 config/locales/ko/course/users.yml create mode 100644 config/locales/ko/errors.yml delete mode 100644 config/locales/ko/layout.yml delete mode 100644 config/locales/ko/user/emails.yml delete mode 100644 config/locales/ko/user/registrations.yml delete mode 100644 config/locales/zh/common.yml delete mode 100644 config/locales/zh/course/assessment/answer/programming_auto_grading.yml delete mode 100644 config/locales/zh/course/assessment/live_feedback/thread.yml delete mode 100644 config/locales/zh/course/assessment/submission/submissions.yml delete mode 100644 config/locales/zh/course/survey/responses.yml delete mode 100644 config/locales/zh/course/user_invitations.yml delete mode 100644 config/locales/zh/course/user_registrations.yml delete mode 100644 config/locales/zh/course/users.yml create mode 100644 config/locales/zh/errors.yml delete mode 100644 config/locales/zh/layout.yml delete mode 100644 config/locales/zh/user/emails.yml delete mode 100644 config/locales/zh/user/registrations.yml diff --git a/app/controllers/course/assessment/submission/submissions_controller.rb b/app/controllers/course/assessment/submission/submissions_controller.rb index 166bcf86c42..f8c99772e4b 100644 --- a/app/controllers/course/assessment/submission/submissions_controller.rb +++ b/app/controllers/course/assessment/submission/submissions_controller.rb @@ -250,7 +250,7 @@ def download_statistics submission_ids = @assessment.submissions.by_users(course_user_ids).pluck(:id) if submission_ids.empty? return render json: { - error: I18n.t('course.assessment.submission.submissions.download_statistics.no_submission_statistics') + error: I18n.t('errors.course.assessment.submission.download_statistics.no_submissions') }, status: :bad_request end diff --git a/app/controllers/course/survey/responses_controller.rb b/app/controllers/course/survey/responses_controller.rb index 02f85de2f34..bbc0fbda3f6 100644 --- a/app/controllers/course/survey/responses_controller.rb +++ b/app/controllers/course/survey/responses_controller.rb @@ -14,7 +14,7 @@ def create @response.save! render_response_json else - render json: { error: t('course.survey.responses.no_course_user') }, status: :bad_request + render json: { error: t('errors.course.survey.responses.no_course_user') }, status: :bad_request end rescue ActiveRecord::RecordInvalid => e handle_create_error(e) diff --git a/app/controllers/course/user_invitations_controller.rb b/app/controllers/course/user_invitations_controller.rb index 4c889c1b0f6..5cc79d1a66a 100644 --- a/app/controllers/course/user_invitations_controller.rb +++ b/app/controllers/course/user_invitations_controller.rb @@ -159,7 +159,7 @@ def aggregate_errors def invalid_course_user_errors invalid_course_users.map do |course_user| user = self.class.helpers.display_course_user(course_user) - t('course.user_invitations.errors.duplicate_user', user: user) + t('errors.course.user_invitations.duplicate_user', user: user) end end @@ -176,7 +176,7 @@ def invalid_course_users def invalid_invitation_email_errors invalid_invitations.map do |invitation| message = invitation.errors.full_messages.to_sentence - t('course.user_invitations.errors.invalid_email', email: invitation.email, message: message) + t('errors.course.user_invitations.invalid_email', email: invitation.email, message: message) end end diff --git a/app/controllers/course/user_registrations_controller.rb b/app/controllers/course/user_registrations_controller.rb index 3bd6b52a8e5..c460ff6f6ca 100644 --- a/app/controllers/course/user_registrations_controller.rb +++ b/app/controllers/course/user_registrations_controller.rb @@ -23,8 +23,8 @@ def registration_params def ensure_unregistered_user return unless current_course.course_users.exists?(user: current_user) - role = t("course.users.role.#{current_course_user.role}") - message = t('course.users.new.already_registered', role: role) + role = t("errors.course.users.role.#{current_course_user.role}") + message = t('errors.course.users.already_registered', role: role) render json: { errors: message }, status: :conflict end diff --git a/app/controllers/user/emails_controller.rb b/app/controllers/user/emails_controller.rb index e2a125bded2..c476f1f12ee 100644 --- a/app/controllers/user/emails_controller.rb +++ b/app/controllers/user/emails_controller.rb @@ -33,7 +33,7 @@ def set_primary def send_confirmation if @email.confirmed? - render json: { errors: t('.already_confirmed', email: @email.email) }, status: :bad_request + render json: { errors: t('errors.user.emails.already_confirmed', email: @email.email) }, status: :bad_request else @email.send_confirmation_instructions head :ok diff --git a/app/controllers/user/registrations_controller.rb b/app/controllers/user/registrations_controller.rb index 9e5b2722bb4..d256d94bf8e 100644 --- a/app/controllers/user/registrations_controller.rb +++ b/app/controllers/user/registrations_controller.rb @@ -7,7 +7,11 @@ class User::RegistrationsController < Devise::RegistrationsController # GET /resource/sign_up def new if @invitation&.confirmed? - message = @invitation.confirmer ? t('.used_with_email', email: @invitation.confirmer.email) : t('.used') + message = if @invitation.confirmer + t('errors.user.registrations.used_with_email', email: @invitation.confirmer.email) + else + t('errors.user.registrations.used') + end render json: { message: message }, status: :conflict and return elsif @invitation.is_a?(Course::UserInvitation) course = @invitation.course @@ -34,7 +38,7 @@ def new def create unless verify_recaptcha build_resource(sign_up_params) - render json: { errors: { recaptcha: t('user.registrations.create.verify_recaptcha_alert') } }, + render json: { errors: { recaptcha: t('errors.user.registrations.verify_recaptcha_alert') } }, status: :unprocessable_entity return end diff --git a/app/helpers/application_html_formatters_helper.rb b/app/helpers/application_html_formatters_helper.rb index 80c7110c978..9545e766aa9 100644 --- a/app/helpers/application_html_formatters_helper.rb +++ b/app/helpers/application_html_formatters_helper.rb @@ -41,7 +41,7 @@ def sanitize_ckeditor_rich_text(text) def format_code_block(code, language = nil, start_line = 1) if code_size_exceeds_limit?(code) content_tag(:div, class: 'alert alert-warning') do - I18n.t('layouts.code_formatter.size_too_big') + I18n.t('errors.code_formatter.size_too_big') end else sanitize_and_format_code(code, language, start_line) diff --git a/app/helpers/application_jobs_helper.rb b/app/helpers/application_jobs_helper.rb index c8c9a736b67..25f7d466272 100644 --- a/app/helpers/application_jobs_helper.rb +++ b/app/helpers/application_jobs_helper.rb @@ -6,13 +6,14 @@ def job_error_message(error) case error['class'] when Docker::Error::ConflictError.name - I18n.t('course.assessment.answer.programming_auto_grading.job.failure.time_limit_breached') + I18n.t('errors.course.assessment.answer.programming_auto_grading.job.failure.time_limit_breached') when Timeout::Error.name - I18n.t('course.assessment.answer.programming_auto_grading.job.failure.timeout_error') + I18n.t('errors.course.assessment.answer.programming_auto_grading.job.failure.timeout_error') when Docker::Error::TimeoutError - I18n.t('course.assessment.answer.programming_auto_grading.job.failure.container_unreachable') + I18n.t('errors.course.assessment.answer.programming_auto_grading.job.failure.container_unreachable') else - I18n.t('course.assessment.answer.programming_auto_grading.job.failure.generic_error', error: error['message']) + I18n.t('errors.course.assessment.answer.programming_auto_grading.job.failure.generic_error', + error: error['message']) end end end diff --git a/app/models/course/assessment/live_feedback/thread.rb b/app/models/course/assessment/live_feedback/thread.rb index 2daa3cdb4fa..1666c3466ac 100644 --- a/app/models/course/assessment/live_feedback/thread.rb +++ b/app/models/course/assessment/live_feedback/thread.rb @@ -22,7 +22,7 @@ def validate_at_most_one_active_thread_per_submission_question return if active_thread_count <= 1 - errors.add(:base, I18n.t('course.assessment.live_feedback.thread.only_one_active_thread')) + errors.add(:base, I18n.t('errors.course.assessment.live_feedback.thread.only_one_active_thread')) end def sent_user_messages(user_id) diff --git a/app/models/user/email.rb b/app/models/user/email.rb index 976699266f3..855ee3062aa 100644 --- a/app/models/user/email.rb +++ b/app/models/user/email.rb @@ -44,7 +44,7 @@ def set_new_user_primary_email return if user.set_next_email_as_primary - errors.add(:base, I18n.t('user.emails.set_primary.no_confirmed_emails')) + errors.add(:base, I18n.t('errors.user.emails.no_confirmed_emails')) raise ActiveRecord::Rollback end diff --git a/app/services/course/assessment/answer/programming_codaveri_auto_grading_service.rb b/app/services/course/assessment/answer/programming_codaveri_auto_grading_service.rb index a418b7e65de..4e2f6e99047 100644 --- a/app/services/course/assessment/answer/programming_codaveri_auto_grading_service.rb +++ b/app/services/course/assessment/answer/programming_codaveri_auto_grading_service.rb @@ -151,7 +151,7 @@ def build_test_case_records_from_test_results(question, auto_grading, evaluation # @return [Array] def build_failed_test_case_records(question, auto_grading) messages = { - error: I18n.t('course.assessment.answer.programming_auto_grading.grade.evaluation_failed_syntax') + error: I18n.t('errors.course.assessment.answer.programming_auto_grading.grade.evaluation_failed_syntax') } remaining_test_cases = question.test_cases - auto_grading.test_results.map(&:test_case) remaining_test_cases.map do |test_case| diff --git a/app/services/course/assessment/authentication_service.rb b/app/services/course/assessment/authentication_service.rb index fbee1e625b8..e4936f6e1e1 100644 --- a/app/services/course/assessment/authentication_service.rb +++ b/app/services/course/assessment/authentication_service.rb @@ -22,7 +22,7 @@ def authenticate(password_input) set_session_token! true else - @assessment.errors.add(:password, I18n.t('helpers.password.wrong_password')) + @assessment.errors.add(:password, I18n.t('errors.authentication.wrong_password')) false end end diff --git a/app/services/course/assessment/programming_codaveri_evaluation_service.rb b/app/services/course/assessment/programming_codaveri_evaluation_service.rb index 71b29f5d1e5..7a185ef7a40 100644 --- a/app/services/course/assessment/programming_codaveri_evaluation_service.rb +++ b/app/services/course/assessment/programming_codaveri_evaluation_service.rb @@ -220,13 +220,13 @@ def process_evaluation_results def status_error_messages { CODAVERI_STATUS_RUNTIME_ERROR => - I18n.t('course.assessment.answer.programming_auto_grading.grade.evaluation_failed_syntax'), + I18n.t('errors.course.assessment.answer.programming_auto_grading.grade.evaluation_failed_syntax'), CODAVERI_STATUS_TIMEOUT => - I18n.t('course.assessment.answer.programming_auto_grading.grade.time_limit_error'), + I18n.t('errors.course.assessment.answer.programming_auto_grading.grade.time_limit_error'), CODAVERI_STATUS_STDOUT_TOO_LONG => - I18n.t('course.assessment.answer.programming_auto_grading.grade.stdout_too_long'), + I18n.t('errors.course.assessment.answer.programming_auto_grading.grade.stdout_too_long'), CODAVERI_STATUS_STDERR_TOO_LONG => - I18n.t('course.assessment.answer.programming_auto_grading.grade.stderr_too_long') + I18n.t('errors.course.assessment.answer.programming_auto_grading.grade.stderr_too_long') } end @@ -240,13 +240,13 @@ def build_codaveri_error_message(result) if [CODAVERI_STATUS_EXIT_SIGNAL, CODAVERI_STATUS_INTERNAL_ERROR].include?(compile_status) compile_message = result.dig('compile', 'message') - return I18n.t('course.assessment.answer.programming_auto_grading.job.failure.generic_error', + return I18n.t('errors.course.assessment.answer.programming_auto_grading.job.failure.generic_error', error: "Codaveri transaction id: #{@codaveri_evaluation_transaction_id}, #{compile_message}") end if [CODAVERI_STATUS_EXIT_SIGNAL, CODAVERI_STATUS_INTERNAL_ERROR].include?(run_status) run_message = result.dig('run', 'message') - return I18n.t('course.assessment.answer.programming_auto_grading.job.failure.generic_error', + return I18n.t('errors.course.assessment.answer.programming_auto_grading.job.failure.generic_error', error: "Codaveri transaction id: #{@codaveri_evaluation_transaction_id}, #{run_message}") end diff --git a/app/services/course/assessment/programming_evaluation_service.rb b/app/services/course/assessment/programming_evaluation_service.rb index 06af2705f73..1547ae3d29c 100644 --- a/app/services/course/assessment/programming_evaluation_service.rb +++ b/app/services/course/assessment/programming_evaluation_service.rb @@ -50,7 +50,7 @@ class Error < StandardError attr_reader :stdout, :stderr def initialize(message, stdout = nil, stderr = nil) - message ||= I18n.t('course.assessment.answer.programming_auto_grading.grade.evaluation_failed_syntax') + message ||= I18n.t('errors.course.assessment.answer.programming_auto_grading.grade.evaluation_failed_syntax') super(message) @stdout = stdout @stderr = stderr @@ -71,14 +71,15 @@ def to_h # Represents a Time or Docker Memory Limit Exceeded error while evaluating the package. class TimeOrMemoryLimitExceededError < Error def initialize(message, stdout = nil, stderr = nil) - message ||= I18n.t('course.assessment.answer.programming_auto_grading.grade.evaluation_failed_time_or_memory') + message ||= + I18n.t('errors.course.assessment.answer.programming_auto_grading.grade.evaluation_failed_time_or_memory') super(message, stdout, stderr) end end class TimeLimitExceededError < Error def initialize(message, stdout = nil, stderr = nil) - message ||= I18n.t('course.assessment.answer.programming_auto_grading.grade.time_limit_error') + message ||= I18n.t('errors.course.assessment.answer.programming_auto_grading.grade.time_limit_error') super(message, stdout, stderr) end end @@ -86,7 +87,7 @@ def initialize(message, stdout = nil, stderr = nil) # Represents a Time Limit Exceeded error while evaluating the package. class MemoryLimitExceededError < Error def initialize(message, stdout = nil, stderr = nil) - message ||= I18n.t('course.assessment.answer.programming_auto_grading.grade.memory_limit_error') + message ||= I18n.t('errors.course.assessment.answer.programming_auto_grading.grade.memory_limit_error') super(message, stdout, stderr) end end diff --git a/app/services/course/assessment/session_authentication_service.rb b/app/services/course/assessment/session_authentication_service.rb index 14066bdf285..42db63ec5ce 100644 --- a/app/services/course/assessment/session_authentication_service.rb +++ b/app/services/course/assessment/session_authentication_service.rb @@ -24,7 +24,7 @@ def authenticate(password) create_new_token if @submission true else - @assessment.errors.add(:password, I18n.t('helpers.password.wrong_password')) + @assessment.errors.add(:password, I18n.t('errors.authentication.wrong_password')) false end end diff --git a/app/services/course/user_registration_service.rb b/app/services/course/user_registration_service.rb index 8e2bd17b23a..c397c19f025 100644 --- a/app/services/course/user_registration_service.rb +++ b/app/services/course/user_registration_service.rb @@ -119,7 +119,7 @@ def claim_course_invitation_code(registration) # parameters. # @return [nil] def invalid_code(registration) - registration.errors.add(:code, I18n.t('course.user_registrations.create.invalid_code')) + registration.errors.add(:code, I18n.t('errors.course.user_registrations.invalid_code')) nil end @@ -127,9 +127,9 @@ def code_taken(registration, invitation) confirmed_by = invitation.confirmer if confirmed_by registration.errors. - add(:code, I18n.t('course.user_registrations.create.code_taken_with_email', email: confirmed_by.email)) + add(:code, I18n.t('errors.course.user_registrations.code_taken_with_email', email: confirmed_by.email)) else - registration.errors.add(:code, I18n.t('course.user_registrations.create.code_taken')) + registration.errors.add(:code, I18n.t('errors.course.user_registrations.code_taken')) end nil end diff --git a/config/locales/en/common.yml b/config/locales/en/common.yml deleted file mode 100644 index 1462ed3977d..00000000000 --- a/config/locales/en/common.yml +++ /dev/null @@ -1,4 +0,0 @@ -en: - helpers: - password: - wrong_password: 'Wrong password' diff --git a/config/locales/en/course/assessment/answer/programming_auto_grading.yml b/config/locales/en/course/assessment/answer/programming_auto_grading.yml deleted file mode 100644 index eac8d1a3611..00000000000 --- a/config/locales/en/course/assessment/answer/programming_auto_grading.yml +++ /dev/null @@ -1,41 +0,0 @@ -en: - course: - assessment: - answer: - programming_auto_grading: - grade: - evaluation_failed_syntax: > - Your code failed to evaluate correctly. There might be a syntax error - or unsupported libraries are used, please check your code again. - evaluation_failed_time_or_memory: > - Your code failed to complete within the allocated time or memory limits. - stdout_too_long: > - Your code's execution was terminated because it generated too much output in stdout. - Please exclude unnecessary output and try again. - stderr_too_long: > - Your code's execution was terminated because it generated too much output in stderr. - Please exclude unnecessary output and try again. - time_limit_error: > - Time Limit Exceeded (TLE) Error - memory_limit_error: > - Memory Limit Exceeded (MLE) Error - job: - failure: - time_limit_breached: > - The evaluator has been killed while it is still running. - This could be caused by the time limit set for this question exceeds - the allowable evaluator time limit in coursemology. - Please contact your course instructor to check this and if the problem persists, - please contact coursemology admin. - timeout_error: > - There is a timeout error as it takes a longer time to run the job. Please try again in a few minutes. - If the problem persists, please contact your course instructor or coursemology admin. - container_unreachable: > - There is an error creating a docker for the evaluator. - This could be due to high server workload. Please try again in a few minutes. - If the problem persists, please contact your course instructor or coursemology admin. - generic_error: > - Encountered an error. The server may be busy now and - you may want to try again in a few minutes. If the same issue persists, - please contact coursemology admin, provide the URL of this page and - quote the following error: "%{error}" diff --git a/config/locales/en/course/assessment/live_feedback/thread.yml b/config/locales/en/course/assessment/live_feedback/thread.yml deleted file mode 100644 index 6424de885f6..00000000000 --- a/config/locales/en/course/assessment/live_feedback/thread.yml +++ /dev/null @@ -1,6 +0,0 @@ -en: - course: - assessment: - live_feedback: - thread: - only_one_active_thread: 'There can be only one active thread per submission question' diff --git a/config/locales/en/course/assessment/submission/submissions.yml b/config/locales/en/course/assessment/submission/submissions.yml deleted file mode 100644 index 5c0280580b6..00000000000 --- a/config/locales/en/course/assessment/submission/submissions.yml +++ /dev/null @@ -1,8 +0,0 @@ -en: - course: - assessment: - submission: - submissions: - download_statistics: - no_submission_statistics: 'No submission fulfilled your requirements for downloading' - diff --git a/config/locales/en/course/survey/responses.yml b/config/locales/en/course/survey/responses.yml deleted file mode 100644 index de05a552064..00000000000 --- a/config/locales/en/course/survey/responses.yml +++ /dev/null @@ -1,5 +0,0 @@ -en: - course: - survey: - responses: - no_course_user: 'You must be a member of this course to start the survey.' diff --git a/config/locales/en/course/user_invitations.yml b/config/locales/en/course/user_invitations.yml deleted file mode 100644 index a74406e1e97..00000000000 --- a/config/locales/en/course/user_invitations.yml +++ /dev/null @@ -1,6 +0,0 @@ -en: - course: - user_invitations: - errors: - duplicate_user: '%{user} appears more than once in the submission.' - invalid_email: '%{email} is invalid: %{message}.' diff --git a/config/locales/en/course/user_registrations.yml b/config/locales/en/course/user_registrations.yml deleted file mode 100644 index a7a722d3ab6..00000000000 --- a/config/locales/en/course/user_registrations.yml +++ /dev/null @@ -1,11 +0,0 @@ -en: - course: - user_registrations: - create: - invalid_code: 'You have entered an invalid invitation code.' - code_taken: > - The provided invitation code has been claimed by another account, - please use that account the to access the course instead. - code_taken_with_email: > - The provided invitation code has been claimed by %{email}, - please use that account to access the course instead. diff --git a/config/locales/en/course/users.yml b/config/locales/en/course/users.yml deleted file mode 100644 index fe3e893fe86..00000000000 --- a/config/locales/en/course/users.yml +++ /dev/null @@ -1,13 +0,0 @@ -en: - course: - users: - role: - student: 'Student' - teaching_assistant: 'Teaching Assistant' - observer: 'Observer' - manager: 'Manager' - owner: 'Owner' - phantom: 'Phantom' - new: - already_registered: 'You are already registered as a %{role}.' - diff --git a/config/locales/en/errors.yml b/config/locales/en/errors.yml new file mode 100644 index 00000000000..e85b2b8f03f --- /dev/null +++ b/config/locales/en/errors.yml @@ -0,0 +1,85 @@ +en: + errors: + authentication: + wrong_password: 'Wrong password' + code_formatter: + size_too_big: 'The file is too big and cannot be displayed.' + course: + users: + already_registered: 'You are already registered as a %{role}.' + role: + student: 'Student' + teaching_assistant: 'Teaching Assistant' + observer: 'Observer' + manager: 'Manager' + owner: 'Owner' + phantom: 'Phantom' + user_invitations: + duplicate_user: '%{user} appears more than once in the submission.' + invalid_email: '%{email} is invalid: %{message}.' + user_registrations: + invalid_code: 'You have entered an invalid invitation code.' + code_taken: > + The provided invitation code has been claimed by another account, + please use that account the to access the course instead. + code_taken_with_email: > + The provided invitation code has been claimed by %{email}, + please use that account to access the course instead. + assessment: + answer: + programming_auto_grading: + grade: + evaluation_failed_syntax: > + Your code failed to evaluate correctly. There might be a syntax error + or unsupported libraries are used, please check your code again. + evaluation_failed_time_or_memory: > + Your code failed to complete within the allocated time or memory limits. + stdout_too_long: > + Your code's execution was terminated because it generated too much output in stdout. + Please exclude unnecessary output and try again. + stderr_too_long: > + Your code's execution was terminated because it generated too much output in stderr. + Please exclude unnecessary output and try again. + time_limit_error: > + Time Limit Exceeded (TLE) Error + memory_limit_error: > + Memory Limit Exceeded (MLE) Error + job: + failure: + time_limit_breached: > + The evaluator has been killed while it is still running. + This could be caused by the time limit set for this question exceeds + the allowable evaluator time limit in coursemology. + Please contact your course instructor to check this and if the problem persists, + please contact coursemology admin. + timeout_error: > + There is a timeout error as it takes a longer time to run the job. Please try again in a few minutes. + If the problem persists, please contact your course instructor or coursemology admin. + container_unreachable: > + There is an error creating a docker for the evaluator. + This could be due to high server workload. Please try again in a few minutes. + If the problem persists, please contact your course instructor or coursemology admin. + generic_error: > + Encountered an error. The server may be busy now and + you may want to try again in a few minutes. If the same issue persists, + please contact coursemology admin, provide the URL of this page and + quote the following error: "%{error}" + live_feedback: + thread: + only_one_active_thread: 'There can be only one active thread per submission question' + submission: + download_statistics: + no_submissions: 'No submission fulfilled your requirements for downloading' + survey: + responses: + no_course_user: 'You must be a member of this course to start the survey.' + user: + emails: + no_confirmed_emails: 'There are no confirmed emails to set as the primary email.' + already_confirmed: '%{email} was already confirmed.' + registrations: + used: > + The provided invitation code has been claimed by another account, please use that account to log in instead. + used_with_email: > + The provided invitation code has been claimed by %{email}, please use that account to log in instead. + verify_recaptcha_alert: There was an error with the reCAPTCHA below, please try again. diff --git a/config/locales/en/layout.yml b/config/locales/en/layout.yml deleted file mode 100644 index 62f4ebed21c..00000000000 --- a/config/locales/en/layout.yml +++ /dev/null @@ -1,4 +0,0 @@ -en: - layouts: - code_formatter: - size_too_big: 'The file is too big and cannot be displayed.' diff --git a/config/locales/en/user/emails.yml b/config/locales/en/user/emails.yml deleted file mode 100644 index e653759e92d..00000000000 --- a/config/locales/en/user/emails.yml +++ /dev/null @@ -1,7 +0,0 @@ -en: - user: - emails: - set_primary: - no_confirmed_emails: 'There are no confirmed emails to set as the primary email.' - send_confirmation: - already_confirmed: '%{email} was already confirmed.' diff --git a/config/locales/en/user/registrations.yml b/config/locales/en/user/registrations.yml deleted file mode 100644 index 795b1cf6958..00000000000 --- a/config/locales/en/user/registrations.yml +++ /dev/null @@ -1,10 +0,0 @@ -en: - user: - registrations: - new: - used: > - The provided invitation code has been claimed by another account, please use that account to log in instead. - used_with_email: > - The provided invitation code has been claimed by %{email}, please use that account to log in instead. - create: - verify_recaptcha_alert: There was an error with the reCAPTCHA below, please try again. diff --git a/config/locales/ko/activerecord/errors.yml b/config/locales/ko/activerecord/errors.yml index dfbb97d09e6..21543f1fe1f 100644 --- a/config/locales/ko/activerecord/errors.yml +++ b/config/locales/ko/activerecord/errors.yml @@ -186,12 +186,14 @@ ko: attributes: time_bonus_exp: bonus_attributes_not_allowed: '보너스 속성은 허용되지 않습니다' - course/survey/answer: '이 질문의 답변은 비워둘 수 없습니다.' + course/survey/answer: + cannot_be_empty: '이 질문의 답변은 비워둘 수 없습니다.' course/user_achievement: attributes: course_user: not_in_course: '선택한 사용자가 지정된 코스에 없습니다' - course/user_invitation: '이 이메일 주소에는 아직 완료되지 않은 초대장이 있습니다' + course/user_invitation: + existing_invitation: '이 이메일 주소에는 아직 완료되지 않은 초대장이 있습니다' course/video: attributes: url: diff --git a/config/locales/ko/common.yml b/config/locales/ko/common.yml deleted file mode 100644 index c1557ab832a..00000000000 --- a/config/locales/ko/common.yml +++ /dev/null @@ -1,4 +0,0 @@ -ko: - helpers: - password: - wrong_password: '잘못된 비밀번호' diff --git a/config/locales/ko/course/assessment/answer/programming_auto_grading.yml b/config/locales/ko/course/assessment/answer/programming_auto_grading.yml deleted file mode 100644 index 6d18b8ed864..00000000000 --- a/config/locales/ko/course/assessment/answer/programming_auto_grading.yml +++ /dev/null @@ -1,36 +0,0 @@ -ko: - course: - assessment: - answer: - programming_auto_grading: - grade: - evaluation_failed_syntax: > - 코드가 올바르게 평가되지 않았습니다. 구문 오류가 있거나 지원되지 않는 라이브러리가 - 사용되었을 수 있습니다. 코드를 다시 확인해 주세요. - evaluation_failed_time_or_memory: > - 코드가 할당된 시간 또는 메모리 제한 내에 완료되지 않았습니다. - stdout_too_long: > - 코드 실행이 너무 많은 stdout 출력을 생성하여 중단되었습니다. - 불필요한 출력을 제거하고 다시 시도해주세요. - stderr_too_long: > - 코드 실행이 너무 많은 stderr 출력을 생성하여 중단되었습니다. - 불필요한 출력을 제거하고 다시 시도해주세요. - time_limit_error: > - 시간 제한 초과 (TLE) 오류 - memory_limit_error: > - 메모리 제한 초과 (MLE) 오류 - job: - failure: - time_limit_breached: > - 평가기가 실행 중에 종료되었습니다. 이 문제의 시간 제한이 coursemology에서 - 허용되는 평가기 시간 제한을 초과했을 수 있습니다. 이 문제에 대해 강사에게 문의하시고, 문제가 계속되면 coursemology - 관리자에게 문의하세요. - timeout_error: > - 작업 실행 시간이 길어져 타임아웃 오류가 발생했습니다. 몇 분 후에 다시 시도해 주세요. 문제가 - 계속되면 강사나 coursemology 관리자에게 문의하세요. - container_unreachable: > - 평가기를 위한 도커 생성 중 오류가 발생했습니다. 서버 작업 부하가 높기 때문일 - 수 있습니다. 몇 분 후에 다시 시도해 주세요. 문제가 계속되면 강사나 coursemology 관리자에게 문의하세요. - generic_error: > - 오류가 발생했습니다. 서버가 바쁠 수 있으니 몇 분 후에 다시 시도해 보세요. 동일한 문제가 - 계속되면, coursemology 관리자에게 문의하고 이 페이지의 URL을 제공하며 다음 오류를 함께 제공해주세요: '"%{error}" diff --git a/config/locales/ko/course/assessment/live_feedback/thread.yml b/config/locales/ko/course/assessment/live_feedback/thread.yml deleted file mode 100644 index 53fa01be691..00000000000 --- a/config/locales/ko/course/assessment/live_feedback/thread.yml +++ /dev/null @@ -1,6 +0,0 @@ -ko: - course: - assessment: - live_feedback: - thread: - only_one_active_thread: '제출 질문당 활성화된 스레드는 하나만 존재할 수 있습니다' diff --git a/config/locales/ko/course/assessment/submission/submissions.yml b/config/locales/ko/course/assessment/submission/submissions.yml deleted file mode 100644 index 591e4b94fcc..00000000000 --- a/config/locales/ko/course/assessment/submission/submissions.yml +++ /dev/null @@ -1,7 +0,0 @@ -ko: - course: - assessment: - submission: - submissions: - download_statistics: - no_submission_statistics: '다운로드 요구 사항을 충족하는 제출물이 없습니다' diff --git a/config/locales/ko/course/survey/responses.yml b/config/locales/ko/course/survey/responses.yml deleted file mode 100644 index 3b73e00e5d9..00000000000 --- a/config/locales/ko/course/survey/responses.yml +++ /dev/null @@ -1,5 +0,0 @@ -ko: - course: - survey: - responses: - no_course_user: '설문 조사를 시작하려면 이 과정의 멤버가 되어야 합니다.' diff --git a/config/locales/ko/course/user_invitations.yml b/config/locales/ko/course/user_invitations.yml deleted file mode 100644 index a3b34de9535..00000000000 --- a/config/locales/ko/course/user_invitations.yml +++ /dev/null @@ -1,6 +0,0 @@ -ko: - course: - user_invitations: - errors: - duplicate_user: '%{user}가 제출물에 여러 번 나타납니다.' - invalid_email: '%{email}이(가) 유효하지 않습니다: %{message}.' diff --git a/config/locales/ko/course/user_registrations.yml b/config/locales/ko/course/user_registrations.yml deleted file mode 100644 index f58d88cfebb..00000000000 --- a/config/locales/ko/course/user_registrations.yml +++ /dev/null @@ -1,10 +0,0 @@ -ko: - course: - user_registrations: - create: - invalid_code: '잘못된 초대 코드를 입력하셨습니다.' - code_taken: > - 제공된 초대 코드는 다른 계정에서 사용되었습니다. 해당 계정을 사용하여 코스에 접근해 주세요. - code_taken_with_email: > - 제공된 초대 코드는 %{email}에서 사용되었습니다. 해당 계정을 사용하여 코스에 접근해 - 주세요. diff --git a/config/locales/ko/course/users.yml b/config/locales/ko/course/users.yml deleted file mode 100644 index 50d5ec133f1..00000000000 --- a/config/locales/ko/course/users.yml +++ /dev/null @@ -1,12 +0,0 @@ -ko: - course: - users: - role: - student: '학생' - teaching_assistant: '조교' - observer: '관찰자' - manager: '관리자' - owner: '소유자' - phantom: '팬텀' - new: - already_registered: '당신은 이미 %{role}(으)로 등록되어 있습니다.' diff --git a/config/locales/ko/errors.yml b/config/locales/ko/errors.yml new file mode 100644 index 00000000000..f57ad1ceb02 --- /dev/null +++ b/config/locales/ko/errors.yml @@ -0,0 +1,79 @@ +ko: + errors: + authentication: + wrong_password: '잘못된 비밀번호' + code_formatter: + size_too_big: '파일이 너무 커서 표시할 수 없습니다.' + course: + users: + already_registered: '당신은 이미 %{role}(으)로 등록되어 있습니다.' + role: + student: '학생' + teaching_assistant: '조교' + observer: '관찰자' + manager: '관리자' + owner: '소유자' + phantom: '팬텀' + user_invitations: + duplicate_user: '%{user}가 제출물에 여러 번 나타납니다.' + invalid_email: '%{email}이(가) 유효하지 않습니다: %{message}.' + user_registrations: + invalid_code: '잘못된 초대 코드를 입력하셨습니다.' + code_taken: > + 제공된 초대 코드는 다른 계정에서 사용되었습니다. 해당 계정을 사용하여 코스에 접근해 주세요. + code_taken_with_email: > + 제공된 초대 코드는 %{email}에서 사용되었습니다. 해당 계정을 사용하여 코스에 접근해 + 주세요. + assessment: + answer: + programming_auto_grading: + grade: + evaluation_failed_syntax: > + 코드가 올바르게 평가되지 않았습니다. 구문 오류가 있거나 지원되지 않는 라이브러리가 + 사용되었을 수 있습니다. 코드를 다시 확인해 주세요. + evaluation_failed_time_or_memory: > + 코드가 할당된 시간 또는 메모리 제한 내에 완료되지 않았습니다. + stdout_too_long: > + 코드 실행이 너무 많은 stdout 출력을 생성하여 중단되었습니다. + 불필요한 출력을 제거하고 다시 시도해주세요. + stderr_too_long: > + 코드 실행이 너무 많은 stderr 출력을 생성하여 중단되었습니다. + 불필요한 출력을 제거하고 다시 시도해주세요. + time_limit_error: > + 시간 제한 초과 (TLE) 오류 + memory_limit_error: > + 메모리 제한 초과 (MLE) 오류 + job: + failure: + time_limit_breached: > + 평가기가 실행 중에 종료되었습니다. 이 문제의 시간 제한이 coursemology에서 + 허용되는 평가기 시간 제한을 초과했을 수 있습니다. 이 문제에 대해 강사에게 문의하시고, 문제가 계속되면 coursemology + 관리자에게 문의하세요. + timeout_error: > + 작업 실행 시간이 길어져 타임아웃 오류가 발생했습니다. 몇 분 후에 다시 시도해 주세요. 문제가 + 계속되면 강사나 coursemology 관리자에게 문의하세요. + container_unreachable: > + 평가기를 위한 도커 생성 중 오류가 발생했습니다. 서버 작업 부하가 높기 때문일 + 수 있습니다. 몇 분 후에 다시 시도해 주세요. 문제가 계속되면 강사나 coursemology 관리자에게 문의하세요. + generic_error: > + 오류가 발생했습니다. 서버가 바쁠 수 있으니 몇 분 후에 다시 시도해 보세요. 동일한 문제가 + 계속되면, coursemology 관리자에게 문의하고 이 페이지의 URL을 제공하며 다음 오류를 함께 제공해주세요: '"%{error}" + live_feedback: + thread: + only_one_active_thread: '제출 질문당 활성화된 스레드는 하나만 존재할 수 있습니다' + submission: + download_statistics: + no_submissions: '다운로드 요구 사항을 충족하는 제출물이 없습니다' + survey: + responses: + no_course_user: '설문 조사를 시작하려면 이 과정의 멤버가 되어야 합니다.' + user: + emails: + no_confirmed_emails: '기본 이메일로 설정할 수 있는 확인된 이메일 주소가 없습니다.' + already_confirmed: '%{email}은(는) 이미 확인되었습니다.' + registrations: + used: > + 제공된 초대 코드는 다른 계정에서 사용되었습니다. 해당 계정으로 로그인해 주세요. + used_with_email: > + 제공된 초대 코드는 %{email}에서 사용되었습니다. 해당 계정으로 로그인해 주세요. + verify_recaptcha_alert: '아래 reCAPTCHA에 오류가 발생했습니다. 다시 시도해 주세요.' diff --git a/config/locales/ko/layout.yml b/config/locales/ko/layout.yml deleted file mode 100644 index 171b80d946b..00000000000 --- a/config/locales/ko/layout.yml +++ /dev/null @@ -1,4 +0,0 @@ -ko: - layouts: - code_formatter: - size_too_big: '파일이 너무 커서 표시할 수 없습니다.' diff --git a/config/locales/ko/user/emails.yml b/config/locales/ko/user/emails.yml deleted file mode 100644 index a1aa65dd4b7..00000000000 --- a/config/locales/ko/user/emails.yml +++ /dev/null @@ -1,7 +0,0 @@ -ko: - user: - emails: - set_primary: - no_confirmed_emails: '기본 이메일로 설정할 수 있는 확인된 이메일 주소가 없습니다.' - send_confirmation: - already_confirmed: '%{email}은(는) 이미 확인되었습니다.' diff --git a/config/locales/ko/user/registrations.yml b/config/locales/ko/user/registrations.yml deleted file mode 100644 index 7de63924fad..00000000000 --- a/config/locales/ko/user/registrations.yml +++ /dev/null @@ -1,10 +0,0 @@ -ko: - user: - registrations: - new: - used: > - 제공된 초대 코드는 다른 계정에서 사용되었습니다. 해당 계정으로 로그인해 주세요. - used_with_email: > - 제공된 초대 코드는 %{email}에서 사용되었습니다. 해당 계정으로 로그인해 주세요. - create: - verify_recaptcha_alert: '아래 reCAPTCHA에 오류가 발생했습니다. 다시 시도해 주세요.' diff --git a/config/locales/zh/activerecord/errors.yml b/config/locales/zh/activerecord/errors.yml index c9696fd92dd..eb9a669b838 100644 --- a/config/locales/zh/activerecord/errors.yml +++ b/config/locales/zh/activerecord/errors.yml @@ -138,6 +138,8 @@ zh: attributes: base: deletion: '由于加入课程申请已被处理,无法撤回。' + course/group_user: + not_enrolled: '必须与小组在同一课程中注册' course/learning_rate_record: attributes: learning_rate: @@ -184,12 +186,14 @@ zh: attributes: time_bonus_exp: bonus_attributes_not_allowed: '不允许使用奖励属性' - course/survey/answer: '这个问题的答案不能为空。' + course/survey/answer: + cannot_be_empty: '这个问题的答案不能为空。' course/user_achievement: attributes: course_user: not_in_course: '选中的用户不在指定课程中' - course/user_invitation: '此电子邮件地址已存在一个未完成的邀请' + course/user_invitation: + existing_invitation: '此电子邮件地址已存在一个未完成的邀请' course/video: attributes: url: diff --git a/config/locales/zh/common.yml b/config/locales/zh/common.yml deleted file mode 100644 index bbc16d83482..00000000000 --- a/config/locales/zh/common.yml +++ /dev/null @@ -1,4 +0,0 @@ -zh: - helpers: - password: - wrong_password: '密码错误' diff --git a/config/locales/zh/course/assessment/answer/programming_auto_grading.yml b/config/locales/zh/course/assessment/answer/programming_auto_grading.yml deleted file mode 100644 index f999b3444b1..00000000000 --- a/config/locales/zh/course/assessment/answer/programming_auto_grading.yml +++ /dev/null @@ -1,35 +0,0 @@ -zh: - course: - assessment: - answer: - programming_auto_grading: - grade: - evaluation_failed_syntax: > - 你的代码无法运行,可能存在语法错误或者使用了不支持的库,请再次检查代码。 - evaluation_failed_time_or_memory: > - 你的代码未能在指定的时间/内存限制内完成。 - stdout_too_long: > - 由于代码执行时在 stdout 生成了过多输出,因此被终止。 - 请排除不必要的输出后重试。 - stderr_too_long: > - 由于代码执行时在 stderr 生成了过多输出,因此被终止。 - 请排除不必要的输出后重试。 - time_limit_error: > - 错误:超过时间限制 (TLE) - memory_limit_error: > - 错误:超过内存限制 (MLE) - job: - failure: - time_limit_breached: > - 判题机在运行时已被终止,可能是由于该问题的时间限制,超出了 coursemology 中允许的值。 - 请联系你的讲师检查课程设置,如果问题仍然存在,请联系 coursemology 管理员。 - timeout_error: > - 判题任务运行时间过长导致超时错误。 - 请在几分钟后重试。如果问题仍然存在,请联系您的课程讲师或 coursemology 管理员。 - container_unreachable: > - 创建判题机docker时出错。 可能是由于服务器工作负载过高。 - 请在几分钟后重试。如果问题仍然存在,请联系您的课程讲师或 coursemology 管理员。 - generic_error: > - 发生错误。可能是由于服务器繁忙,请在几分钟后重试。如果问题仍然存在,请联系 coursemology 管理员, - 并提供此页面的 URL,引用以下错误:"%{error}" - diff --git a/config/locales/zh/course/assessment/live_feedback/thread.yml b/config/locales/zh/course/assessment/live_feedback/thread.yml deleted file mode 100644 index 4a5a520ff54..00000000000 --- a/config/locales/zh/course/assessment/live_feedback/thread.yml +++ /dev/null @@ -1,6 +0,0 @@ -zh: - course: - assessment: - live_feedback: - thread: - only_one_active_thread: '每个提交问题只能有一个活动线程' diff --git a/config/locales/zh/course/assessment/submission/submissions.yml b/config/locales/zh/course/assessment/submission/submissions.yml deleted file mode 100644 index 70f8c810e68..00000000000 --- a/config/locales/zh/course/assessment/submission/submissions.yml +++ /dev/null @@ -1,8 +0,0 @@ -zh: - course: - assessment: - submission: - submissions: - download_statistics: - no_submission_statistics: '没有提交满足您的下载要求' - diff --git a/config/locales/zh/course/survey/responses.yml b/config/locales/zh/course/survey/responses.yml deleted file mode 100644 index 3b83c8d9047..00000000000 --- a/config/locales/zh/course/survey/responses.yml +++ /dev/null @@ -1,5 +0,0 @@ -zh: - course: - survey: - responses: - no_course_user: '你必须是本课程的成员才能开始调研。' diff --git a/config/locales/zh/course/user_invitations.yml b/config/locales/zh/course/user_invitations.yml deleted file mode 100644 index 27a8a1ca6c2..00000000000 --- a/config/locales/zh/course/user_invitations.yml +++ /dev/null @@ -1,7 +0,0 @@ -zh: - course: - user_invitations: - errors: - duplicate_user: '%{user}在提交中出现了多次。' - invalid_email: '%{email}无效:%{message}。' - diff --git a/config/locales/zh/course/user_registrations.yml b/config/locales/zh/course/user_registrations.yml deleted file mode 100644 index 9a377ff2216..00000000000 --- a/config/locales/zh/course/user_registrations.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - course: - user_registrations: - create: - invalid_code: '你输入了一个无效的邀请码。' - code_taken: > - 所提供的邀请码已被另一个账户所使用, - 请使用该账户来访问该课程。 - code_taken_with_email: > - 所提供的邀请码已被%{email}使用, - 请使用该账户访问该课程。 diff --git a/config/locales/zh/course/users.yml b/config/locales/zh/course/users.yml deleted file mode 100644 index cfe1ff9f2d3..00000000000 --- a/config/locales/zh/course/users.yml +++ /dev/null @@ -1,12 +0,0 @@ -zh: - course: - users: - role: - student: '学生' - teaching_assistant: '助教' - observer: '观察者' - manager: '管理员' - owner: '拥有者' - phantom: '虚拟用户' - new: - already_registered: '你已注册为%{role}。' diff --git a/config/locales/zh/errors.yml b/config/locales/zh/errors.yml new file mode 100644 index 00000000000..cb4b14af578 --- /dev/null +++ b/config/locales/zh/errors.yml @@ -0,0 +1,79 @@ +zh: + errors: + authentication: + wrong_password: '密码错误' + code_formatter: + size_too_big: '文件过大,无法显示。' + course: + users: + already_registered: '你已注册为%{role}。' + role: + student: '学生' + teaching_assistant: '助教' + observer: '观察者' + manager: '管理员' + owner: '拥有者' + phantom: '虚拟用户' + user_invitations: + duplicate_user: '%{user}在提交中出现了多次。' + invalid_email: '%{email}无效:%{message}。' + user_registrations: + invalid_code: '你输入了一个无效的邀请码。' + code_taken: > + 所提供的邀请码已被另一个账户所使用, + 请使用该账户来访问该课程。 + code_taken_with_email: > + 所提供的邀请码已被%{email}使用, + 请使用该账户访问该课程。 + assessment: + answer: + programming_auto_grading: + grade: + evaluation_failed_syntax: > + 你的代码无法运行,可能存在语法错误或者使用了不支持的库,请再次检查代码。 + evaluation_failed_time_or_memory: > + 你的代码未能在指定的时间/内存限制内完成。 + stdout_too_long: > + 由于代码执行时在 stdout 生成了过多输出,因此被终止。 + 请排除不必要的输出后重试。 + stderr_too_long: > + 由于代码执行时在 stderr 生成了过多输出,因此被终止。 + 请排除不必要的输出后重试。 + time_limit_error: > + 错误:超过时间限制 (TLE) + memory_limit_error: > + 错误:超过内存限制 (MLE) + job: + failure: + time_limit_breached: > + 判题机在运行时已被终止,可能是由于该问题的时间限制,超出了 coursemology 中允许的值。 + 请联系你的讲师检查课程设置,如果问题仍然存在,请联系 coursemology 管理员。 + timeout_error: > + 判题任务运行时间过长导致超时错误。 + 请在几分钟后重试。如果问题仍然存在,请联系您的课程讲师或 coursemology 管理员。 + container_unreachable: > + 创建判题机docker时出错。 可能是由于服务器工作负载过高。 + 请在几分钟后重试。如果问题仍然存在,请联系您的课程讲师或 coursemology 管理员。 + generic_error: > + 发生错误。可能是由于服务器繁忙,请在几分钟后重试。如果问题仍然存在,请联系 coursemology 管理员, + 并提供此页面的 URL,引用以下错误:"%{error}" + live_feedback: + thread: + only_one_active_thread: '每个提交问题只能有一个活动线程' + submission: + download_statistics: + no_submissions: '没有提交满足您的下载要求' + survey: + responses: + no_course_user: '你必须是本课程的成员才能开始调研。' + user: + emails: + no_confirmed_emails: '没有已验证的邮箱地址可以设置为主要邮箱。' + already_confirmed: '%{email}已验证。' + registrations: + used: > + 所提供的邀请码已被另一个账户所使用,请使用该账户登录。 + used_with_email: > + 所提供的邀请码已被%{email}使用, + 请使用该账户访问该课程。 + verify_recaptcha_alert: 下方 reCAPTCHA 验证出现错误,请重试。 diff --git a/config/locales/zh/layout.yml b/config/locales/zh/layout.yml deleted file mode 100644 index f4c53dcd62e..00000000000 --- a/config/locales/zh/layout.yml +++ /dev/null @@ -1,4 +0,0 @@ -zh: - layouts: - code_formatter: - size_too_big: '文件过大,无法显示。' diff --git a/config/locales/zh/user/emails.yml b/config/locales/zh/user/emails.yml deleted file mode 100644 index 77453e8ebb1..00000000000 --- a/config/locales/zh/user/emails.yml +++ /dev/null @@ -1,7 +0,0 @@ -zh: - user: - emails: - set_primary: - no_confirmed_emails: '没有已验证的邮箱地址可以设置为主要邮箱。' - send_confirmation: - already_confirmed: '%{email}已验证。' diff --git a/config/locales/zh/user/registrations.yml b/config/locales/zh/user/registrations.yml deleted file mode 100644 index f2bed7b84d1..00000000000 --- a/config/locales/zh/user/registrations.yml +++ /dev/null @@ -1,11 +0,0 @@ -zh: - user: - registrations: - new: - used: > - 所提供的邀请码已被另一个账户所使用,请使用该账户登录。 - used_with_email: > - 所提供的邀请码已被%{email}使用, - 请使用该账户访问该课程。 - create: - verify_recaptcha_alert: 下方 reCAPTCHA 验证出现错误,请重试。 diff --git a/spec/controllers/user/emails_controller_spec.rb b/spec/controllers/user/emails_controller_spec.rb index 4e0475a0cd7..06f6d56e90a 100644 --- a/spec/controllers/user/emails_controller_spec.rb +++ b/spec/controllers/user/emails_controller_spec.rb @@ -63,7 +63,7 @@ subject json_result = JSON.parse(response.body) - expect(json_result['errors']).to eq(I18n.t('errors.user.emails.already_confirmed')) + expect(json_result['errors']).to eq(I18n.t('errors.user.emails.already_confirmed', email: email.email)) end end diff --git a/spec/services/course/assessment/answer/programming_auto_grading_service_spec.rb b/spec/services/course/assessment/answer/programming_auto_grading_service_spec.rb index d78e4f2e7aa..d6d48037be3 100644 --- a/spec/services/course/assessment/answer/programming_auto_grading_service_spec.rb +++ b/spec/services/course/assessment/answer/programming_auto_grading_service_spec.rb @@ -204,7 +204,9 @@ subject answer.auto_grading.specific.test_results.each do |test_result| expect(test_result.messages['error']). - to eq 'course.assessment.answer.programming_auto_grading.grade.evaluation_failed_syntax' + to eq I18n.t( + 'errors.course.assessment.answer.programming_auto_grading.grade.evaluation_failed_syntax' + ) end end