Class: Fastlane::Helper::TranslateGptReleaseNotesHelper
- Inherits:
-
Object
- Object
- Fastlane::Helper::TranslateGptReleaseNotesHelper
- Defined in:
- lib/fastlane/plugin/translate_gpt_release_notes/helper/translate_gpt_release_notes_helper.rb
Instance Method Summary collapse
-
#initialize(params) ⇒ TranslateGptReleaseNotesHelper
constructor
A new instance of TranslateGptReleaseNotesHelper.
-
#translate_text(text, target_locale, _platform) ⇒ Object
Request a translation from the configured provider.
Constructor Details
#initialize(params) ⇒ TranslateGptReleaseNotesHelper
Returns a new instance of TranslateGptReleaseNotesHelper.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fastlane/plugin/translate_gpt_release_notes/helper/translate_gpt_release_notes_helper.rb', line 10 def initialize(params) @params = params provider_name = params[:provider] || 'openai' # Validate provider selection unless Providers::ProviderFactory.valid_provider?(provider_name) UI.warning "Unknown provider '#{provider_name}', falling back to OpenAI" provider_name = 'openai' end # Create provider via factory (handles credential resolution) @provider = Providers::ProviderFactory.create(provider_name, params) # Validate provider configuration unless @provider.valid? UI.user_error!("Provider configuration errors: #{@provider.config_errors.join(', ')}") end # Initialize glossary loader if glossary parameters are provided if params[:glossary] || params[:glossary_dir] @glossary_loader = GlossaryLoader.new(params) UI.("Glossary sources: #{[params[:glossary] && 'file', params[:glossary_dir] && 'directory'].compact.join(' + ')}") end end |
Instance Method Details
#translate_text(text, target_locale, _platform) ⇒ Object
Request a translation from the configured provider
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/fastlane/plugin/translate_gpt_release_notes/helper/translate_gpt_release_notes_helper.rb', line 36 def translate_text(text, target_locale, _platform) source_locale = @params[:master_locale] glossary_terms = @glossary_loader&.terms_for(text, target_locale) || {} if glossary_terms.any? UI.("Glossary: #{glossary_terms.size} terms matched for #{target_locale}") end @provider.translate(text, source_locale, target_locale, glossary_terms: glossary_terms) end |