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
256 257 258 259 |
# File 'lib/jekyll-multiple-languages-plugin.rb', line 256 def initialize(tag_name, key, tokens) super @key = key.strip end |
Instance Method Details
#render(context) ⇒ Object
render
266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 |
# File 'lib/jekyll-multiple-languages-plugin.rb', line 266 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 |