Sha256: ad19c791f60fb304af9495499defd7194d44d794a3e3c7b12ffe33e6698be3ac

Contents?: true

Size: 1.69 KB

Versions: 3

Compression:

Stored size: 1.69 KB

Contents

module I18n::Tasks::FillTasks
  def add_missing!(locale = base_locale, placeholder = nil)
    normalize_store! locale
    set_blank_values! locale, locale == base_locale do |keys|
      keys.map { |key|
        placeholder || key.split('.').last.to_s.humanize
      }
    end
  end

  def fill_with_blanks!(locales = nil)
    locales = non_base_locales(locales)
    add_missing! base_locale, ''
    normalize_store! locales
    locales.each do |locale|
      add_missing! locale, ''
    end
  end

  def fill_with_google_translate!(locales = nil)
    normalize_store! base_locale
    locales = non_base_locales(locales)
    normalize_store! locales
    locales.each do |locale|
      set_blank_values! locale do |blank_keys|
        google_translate blank_keys.map { |k| t(k) }, to: locale, from: base_locale
      end
    end
  end

  def fill_with_base_values!(locales = nil)
    normalize_store! base_locale
    locales = non_base_locales(locales)
    normalize_store! locales
    locales.each do |locale|
      set_blank_values! locale do |blank_keys|
        blank_keys.map { |k| t(k) }
      end
    end
  end

  # fill blank values with values from passed block
  # @param [String] locale
  # @param [true, false] include_missing Include keys present in source but missing from base locale
  def set_blank_values!(locale = base_locale, include_missing = (locale == base_locale), &fill_with)
    blank_keys = traverse_map_if(data[base_locale]) { |key, value|
      key if !key_value?(key, locale) && !ignore_key?(key, :missing)
    }
    blank_keys += keys_not_in_base if include_missing

    list         = blank_keys.uniq.zip fill_with.call(blank_keys)
    data[locale] = data[locale].deep_merge(list_to_tree(list))
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
i18n-tasks-0.2.12 lib/i18n/tasks/fill_tasks.rb
i18n-tasks-0.2.11 lib/i18n/tasks/fill_tasks.rb
i18n-tasks-0.2.10 lib/i18n/tasks/fill_tasks.rb