Module: BetterTranslate

Defined in:
lib/better_translate.rb,
lib/better_translate/cli.rb,
lib/better_translate/cache.rb,
lib/better_translate/errors.rb,
lib/better_translate/railtie.rb,
lib/better_translate/version.rb,
lib/better_translate/validator.rb,
lib/better_translate/translator.rb,
lib/better_translate/json_handler.rb,
lib/better_translate/rate_limiter.rb,
lib/better_translate/yaml_handler.rb,
lib/better_translate/configuration.rb,
lib/better_translate/progress_tracker.rb,
lib/better_translate/provider_factory.rb,
lib/better_translate/analyzer/reporter.rb,
lib/better_translate/direct_translator.rb,
lib/better_translate/variable_extractor.rb,
lib/better_translate/analyzer/key_scanner.rb,
lib/better_translate/utils/hash_flattener.rb,
lib/better_translate/analyzer/code_scanner.rb,
lib/better_translate/analyzer/orphan_detector.rb,
lib/better_translate/strategies/base_strategy.rb,
lib/better_translate/strategies/deep_strategy.rb,
lib/better_translate/providers/gemini_provider.rb,
lib/better_translate/strategies/batch_strategy.rb,
lib/better_translate/providers/chatgpt_provider.rb,
lib/better_translate/providers/anthropic_provider.rb,
lib/better_translate/providers/base_http_provider.rb,
lib/better_translate/strategies/strategy_selector.rb,
lib/generators/better_translate/analyze/analyze_generator.rb,
lib/generators/better_translate/install/install_generator.rb,
lib/generators/better_translate/translate/translate_generator.rb

Overview

BetterTranslate - AI-powered YAML locale file translator

Automatically translate YAML locale files using AI providers (ChatGPT, Gemini, Claude). Features intelligent caching, batch processing, and Rails integration.

Examples:

Basic usage

BetterTranslate.configure do |config|
  config.provider = :chatgpt
  config.openai_key = ENV['OPENAI_API_KEY']
  config.source_language = "en"
  config.target_languages = [
    { short_name: "it", name: "Italian" },
    { short_name: "fr", name: "French" }
  ]
  config.input_file = "config/locales/en.yml"
  config.output_folder = "config/locales"
end

BetterTranslate.translate_files

Defined Under Namespace

Modules: Analyzer, Generators, Providers, Strategies, Utils Classes: ApiError, CLI, Cache, Configuration, ConfigurationError, DirectTranslator, Error, FileError, JsonError, JsonHandler, ProgressTracker, ProviderError, ProviderFactory, ProviderNotFoundError, Railtie, RateLimitError, RateLimiter, TranslationError, Translator, ValidationError, Validator, VariableExtractor, YAMLHandler, YamlError

Constant Summary collapse

VERSION =

Current version of BetterTranslate gem

"1.1.1"

Class Method Summary collapse

Class Method Details

.configurationConfiguration

Get current configuration

Examples:

config = BetterTranslate.configuration
config.provider #=> :chatgpt

Returns:



84
85
86
# File 'lib/better_translate.rb', line 84

def configuration
  @configuration ||= Configuration.new
end

.configure {|config| ... } ⇒ Configuration

Configure BetterTranslate

Examples:

BetterTranslate.configure do |config|
  config.provider = :chatgpt
  config.openai_key = ENV['OPENAI_API_KEY']
  config.source_language = "en"
  config.target_languages = [{ short_name: "it", name: "Italian" }]
end

Yield Parameters:

Returns:



71
72
73
74
# File 'lib/better_translate.rb', line 71

def configure
  yield(configuration)
  configuration
end

.reset!void

This method returns an undefined value.

Reset configuration



115
116
117
# File 'lib/better_translate.rb', line 115

def reset!
  @configuration = nil
end

.translate_filesHash

Translate files using current configuration

Examples:

results = BetterTranslate.translate_files
puts "Success: #{results[:success_count]}, Failures: #{results[:failure_count]}"

Returns:

  • (Hash)

    Results with :success_count, :failure_count, :errors

Raises:



97
98
99
100
101
102
103
104
105
# File 'lib/better_translate.rb', line 97

def translate_files
  unless @configuration
    raise ConfigurationError,
          "BetterTranslate is not configured. Call BetterTranslate.configure first."
  end

  translator = Translator.new(configuration)
  translator.translate_all
end

.versionString

Get gem version

Examples:

BetterTranslate.version #=> "0.1.0"

Returns:

  • (String)

    Version string



126
127
128
# File 'lib/better_translate.rb', line 126

def version
  VERSION
end