Class: Jekyll::L10n::CompendiumTranslator

Inherits:
Object
  • Object
show all
Defined in:
lib/jekyll-l10n/extraction/compendium_translator.rb

Overview

Automatically translates compendium PO files using LibreTranslate.

CompendiumTranslator loads compendium files for each locale, identifies untranslated entries, sends them to the LibreTranslate API for translation, and saves the translated results back to the PO files. It provides detailed logging of the translation process.

Key responsibilities:

  • Load compendium PO files for each locale

  • Convert between PO entry formats for API compatibility

  • Trigger LibreTranslate translation for untranslated entries

  • Save translated entries back to compendium files

  • Log translation statistics and progress

Examples:

translator = CompendiumTranslator.new(site)
translator.translate_compendia(config) if config.libretranslate_enabled?
# Compendia updated with LibreTranslate translations

Instance Method Summary collapse

Constructor Details

#initialize(site) ⇒ CompendiumTranslator

Initialize a new CompendiumTranslator.

Parameters:

  • site (Jekyll::Site)

    Jekyll site object



34
35
36
37
38
# File 'lib/jekyll-l10n/extraction/compendium_translator.rb', line 34

def initialize(site)
  @site = site
  with_locales_data = SiteConfigAccessor.extract_locales_data(@site)
  @site_config = PageLocalesConfig.new({ 'with_locales_data' => with_locales_data })
end

Instance Method Details

#translate_compendia(config) ⇒ void

This method returns an undefined value.

Translate compendia for all configured locales.

Checks if LibreTranslate is enabled. If so, for each configured locale, loads the compendium PO file, identifies untranslated entries, sends them to LibreTranslate API, and saves the updated file.

Parameters:



48
49
50
51
# File 'lib/jekyll-l10n/extraction/compendium_translator.rb', line 48

def translate_compendia(config)
  po_manager = PoFileManager.new(@site, config.locales_dir)
  translate_compendia_for_locale(po_manager, config)
end