Class: Jekyll::L10n::CompendiumMerger

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

Overview

Merges page-specific PO files into compendium files.

CompendiumMerger combines all page-specific translations for a locale into a single compendium file. It preserves existing compendium translations, merges in new strings from pages, updates references, and cleans up the locale directory after merging.

Key responsibilities:

  • Load existing compendium translations

  • Merge page-specific translations into compendium

  • Preserve existing translations while adding new ones

  • Update file location references for new entries

  • Save merged compendium back to file

  • Clean up locale-specific directory structure

Examples:

merger = CompendiumMerger.new(site)
merger.merge_compendia(po_manager, config)
# Page-specific PO files merged into _locales/{locale}.po, directories cleaned up

See Also:

Instance Method Summary collapse

Constructor Details

#initialize(site) ⇒ CompendiumMerger

Initialize a new CompendiumMerger.

Parameters:

  • site (Jekyll::Site)

    Jekyll site object



34
35
36
37
38
# File 'lib/jekyll-l10n/extraction/compendium_merger.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

#merge_compendia(po_manager, config) ⇒ void

This method returns an undefined value.

Merge page-specific PO files into compendia for all locales.

For each configured locale, loads existing compendium, merges all page-specific translations, and saves the combined result. Cleans up locale subdirectories after merging.

Parameters:



49
50
51
52
53
# File 'lib/jekyll-l10n/extraction/compendium_merger.rb', line 49

def merge_compendia(po_manager, config)
  config.locales.each do |locale|
    process_locale(locale, po_manager, config)
  end
end