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.



78
79
80
81
# File 'lib/jekyll/multiple/languages/plugin.rb', line 78

def initialize(tag_name, key, tokens)
  super
  @key = key.strip
end

Instance Method Details

#render(context) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/jekyll/multiple/languages/plugin.rb', line 83

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