Skip to content

Commit 280f298

Browse files
authored
DEV: Functional class to get the active selected translator (#280)
* DEV: Functional class to get the active selected translator * zeitwerk
1 parent f4724ab commit 280f298

File tree

5 files changed

+16
-10
lines changed

5 files changed

+16
-10
lines changed

app/controllers/discourse_translator/translator_controller.rb

+2-6
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,10 @@ def translate
4141
begin
4242
title_json = {}
4343
detected_lang, translation =
44-
"DiscourseTranslator::Provider::#{SiteSetting.translator_provider}".constantize.translate(
45-
post,
46-
)
44+
DiscourseTranslator::Provider::TranslatorProvider.get.translate(post)
4745
if post.is_first_post?
4846
_, title_translation =
49-
"DiscourseTranslator::Provider::#{SiteSetting.translator_provider}".constantize.translate(
50-
post.topic,
51-
)
47+
DiscourseTranslator::Provider::TranslatorProvider.get.translate(post.topic)
5248
title_json = { title_translation: title_translation }
5349
end
5450
render json: { translation: translation, detected_lang: detected_lang }.merge(title_json),

app/jobs/regular/detect_translatable_language.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def execute(args)
1111
translatable = args[:type].constantize.find_by(id: args[:translatable_id])
1212
return if translatable.blank?
1313
begin
14-
translator = "DiscourseTranslator::Provider::#{SiteSetting.translator_provider}".constantize
14+
translator = DiscourseTranslator::Provider::TranslatorProvider.get
1515
translator.detect(translatable)
1616
rescue ::DiscourseTranslator::Provider::ProblemCheckedTranslationError
1717
# problem-checked translation errors gracefully

app/jobs/regular/translate_translatable.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def execute(args)
1111

1212
target_locales = SiteSetting.automatic_translation_target_languages.split("|")
1313
target_locales.each do |target_locale|
14-
"DiscourseTranslator::Provider::#{SiteSetting.translator_provider}".constantize.translate(
14+
DiscourseTranslator::Provider::TranslatorProvider.get.translate(
1515
translatable,
1616
target_locale.to_sym,
1717
)

app/jobs/scheduled/automatic_translation_backfill.rb

+1-2
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ def backfill_locales
6767
end
6868

6969
def translator
70-
@translator_klass ||=
71-
"DiscourseTranslator::Provider::#{SiteSetting.translator_provider}".constantize
70+
@translator_klass ||= DiscourseTranslator::Provider::TranslatorProvider.get
7271
end
7372

7473
def translate_records(type, record_ids, target_locale)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# frozen_string_literal: true
2+
3+
module DiscourseTranslator
4+
module Provider
5+
class TranslatorProvider
6+
def self.get
7+
"DiscourseTranslator::Provider::#{SiteSetting.translator_provider}".constantize
8+
end
9+
end
10+
end
11+
end

0 commit comments

Comments
 (0)