Class: AddOns::FieldTranslationService

Inherits:
Object
  • Object
show all
Includes:
ElasticAPM::SpanHelpers
Defined in:
app/services/add_ons/field_translation_service.rb

Constant Summary collapse

SUPPORTED_LANGUAGES =
{
  'en' => 'English',
  'th' => 'Thai',
  'zh' => 'Chinese Simplified (zh-Hans)',
  'cn' => 'Chinese Traditional (zh-Hant)',
  'ru' => 'Russian',
  'ko' => 'Korean',
  'ja' => 'Japanese',
  'ms' => 'Malay',
  'fr' => 'French',
  'de' => 'German',
  'es' => 'Spanish',
  'id' => 'Indonesian',
  'vi' => 'Vietnamese',
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(field_name:, source_text:, source_language:, target_languages:, add_on_id: nil) ⇒ FieldTranslationService

Returns a new instance of FieldTranslationService.



23
24
25
26
27
28
29
# File 'app/services/add_ons/field_translation_service.rb', line 23

def initialize(field_name:, source_text:, source_language:, target_languages:, add_on_id: nil)
  @add_on_id = add_on_id
  @field_name = field_name
  @source_text = source_text
  @source_language = source_language
  @target_languages = target_languages
end

Instance Method Details

#callObject



31
32
33
34
35
36
37
38
39
40
# File 'app/services/add_ons/field_translation_service.rb', line 31

def call
  return failure_result('Source text is required') if @source_text.blank?
  return failure_result('Target languages are required') if @target_languages.blank?

  translations = translate_field
  success_result(translations)
rescue StandardError => e
  APMErrorHandler.report(e, context: { add_on_id: @add_on_id, field_name: @field_name })
  failure_result(e.message)
end