Class: Jekyll::LocalizeTag

Inherits:
Liquid::Tag
  • Object
show all
Defined in:
lib/jekyll/multiple/languages/plugin.rb

Instance Method Summary collapse

Constructor Details

#initialize(tag_name, key, tokens) ⇒ LocalizeTag

Returns a new instance of LocalizeTag.



49
50
51
52
53
# File 'lib/jekyll/multiple/languages/plugin.rb', line 49

def initialize(tag_name, key, tokens)
  super
  @key = key.strip
  @@langs ||= {}
end

Instance Method Details

#render(context) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/jekyll/multiple/languages/plugin.rb', line 55

def render(context)
  if "#{context[@key]}" != "" #Check for page variable
    key = "#{context[@key]}"
  else
    key = @key
  end
  lang = context.registers[:site].config['lang']
  unless @@langs.has_key?(lang)
    puts "Loading translation from file #{context.registers[:site].source}/_i18n/#{lang}.yml"
    @@langs[lang] = YAML.load_file("#{context.registers[:site].source}/_i18n/#{lang}.yml")
  end
  translation = @@langs[lang].access(key) if key.is_a?(String)
  if translation.empty?
    puts "Missing i18n key: #{lang}:#{key}"
    "*#{lang}:#{key}*"
  else
    translation
  end
end