Class: Jekyll::LocalizeTag
- Inherits:
-
Liquid::Tag
- Object
- Liquid::Tag
- Jekyll::LocalizeTag
- Defined in:
- lib/jekyll-multiple-languages-plugin.rb
Overview
class LocalizeTag
Localization by getting localized text from YAML files. User must use the “t” or “translate” liquid tags.
Instance Method Summary collapse
-
#initialize(tag_name, key, tokens) ⇒ LocalizeTag
constructor
initialize ======================================.
-
#render(context) ⇒ Object
render ======================================.
Constructor Details
#initialize(tag_name, key, tokens) ⇒ LocalizeTag
initialize
285 286 287 288 |
# File 'lib/jekyll-multiple-languages-plugin.rb', line 285 def initialize(tag_name, key, tokens) super @key = key.strip end |
Instance Method Details
#render(context) ⇒ Object
render
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 |
# File 'lib/jekyll-multiple-languages-plugin.rb', line 295 def render(context) if "#{context[@key]}" != "" # Check for page variable key = "#{context[@key]}" else key = @key end key = Liquid::Template.parse(key).render(context) # Parses and renders some Liquid syntax on arguments (allows expansions) site = context.registers[:site] # Jekyll site object lang = site.config['lang'] 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 |