diff --git a/app/controllers/concerns/submission_scoring.rb b/app/controllers/concerns/submission_scoring.rb index 371a3fa9..d6e30804 100644 --- a/app/controllers/concerns/submission_scoring.rb +++ b/app/controllers/concerns/submission_scoring.rb @@ -33,7 +33,9 @@ module SubmissionScoring if file.teacher_defined_linter? LinterCheckRun.create_from(testrun, assessment) - assessment = assessor.translate_linter(assessment, session[:locale]) + switch_locale do + assessment = assessor.translate_linter(assessment, I18n.locale) + end # replace file name with hint if linter is not used for grading. Refactor! filename = t('exercises.implement.not_graded') if file.weight.zero? diff --git a/lib/py_lint_adapter.rb b/lib/py_lint_adapter.rb index 575c0b44..d132b7f7 100644 --- a/lib/py_lint_adapter.rb +++ b/lib/py_lint_adapter.rb @@ -97,8 +97,8 @@ detailed_linter_results: assertion_error_matches} # key might be "linter.#{severity}.#{name}.#{key}.#{value}" # or something like "linter.#{severity}.#{name}.replacement" translation = I18n.t(key, default: default) - key.delete_suffix!(".#{default}") # Remove any custom prefix, might have no effect - keys = key.split('.') + cleaned_key = key.delete_suffix(".#{default}") # Remove any custom prefix, might have no effect + keys = cleaned_key.split('.') final_key = keys.pop log_missing = if %w[actual suggestion context line].include?(final_key) # SyntaxErrors: These are dynamic and won't get translated @@ -107,7 +107,7 @@ detailed_linter_results: assertion_error_matches} # Read config key I18n.t(keys.append('log_missing').join('.'), default: false) end - Sentry.capture_message({key: key, default: default}.to_json) if translation == default && log_missing + Sentry.capture_message({key: cleaned_key, default: default}.to_json) if translation == default && log_missing translation end end