Top Level Namespace

Defined Under Namespace

Modules: Jekyll Classes: Hash, TranslatedString

Instance Method Summary collapse

Instance Method Details

#translate_key(key, lang, site) ⇒ Object

translate_key

Translate given key to given language.



605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
# File 'lib/jekyll-multiple-languages-plugin.rb', line 605

def translate_key(key, lang, site)
  unless site.parsed_translations.has_key?(lang)
    puts              "Loading translation from file #{site.source}/_i18n/#{lang}.yml"
    site.parsed_translations[lang] = YAML.load_file("#{site.source}/_i18n/#{lang}.yml")
  end

  translation = site.parsed_translations[lang].access(key) if key.is_a?(String)

  if translation.nil? or translation.empty?
    translation = site.parsed_translations[site.config['default_lang']].access(key)

    puts "Missing i18n key: #{lang}:#{key}"
    puts "Using translation '%s' from default language: %s" %[translation, site.config['default_lang']]
  end

  translation
end

#translate_props(data, site, props_key_name = 'translate_props') ⇒ Object

translate_props

Perform translation of properties defined in translation property list.



659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
# File 'lib/jekyll-multiple-languages-plugin.rb', line 659

def translate_props(data, site, props_key_name = 'translate_props')
  lang = site.config['lang']
  (data[props_key_name] || []).each do |prop_name|
    if prop_name.is_a?(String)
      prop_name = prop_name.strip
      if prop_name.empty?
        puts "There is an empty property defined in '#{props_key_name}'"
      else
        prop_value = data[prop_name]
        if prop_value.is_a?(String) and !prop_value.empty?
          data[prop_name] = TranslatedString.translate(prop_value, lang, site)
        end
      end
    else
      puts "Incorrect property name '#{prop_name}'. Must be a string"
    end
  end
end