Module: Jekyll::LanguagePlugin::LiquidContext

Defined in:
lib/jekyll/language-plugin/liquid_context.rb

Class Method Summary collapse

Class Method Details

.get_language(context) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/jekyll/language-plugin/liquid_context.rb', line 11

def self.get_language(context)
  language = context.registers[:page]['language']

  if language.to_s.empty?
    raise Jekyll::LanguagePlugin::PluginError.new('No language specified for current page or post.')
  end

  language
end

.get_language_data(context) ⇒ Object



7
8
9
# File 'lib/jekyll/language-plugin/liquid_context.rb', line 7

def self.get_language_data(context)
  context.registers[:site].languageData
end

.get_language_name(context, name) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/jekyll/language-plugin/liquid_context.rb', line 68

def self.get_language_name(context, name)
  language_data = self.get_language_data(context)
  language = self.get_language(context)

  str = language_data.get(['lang', name])

  if str.nil?
    raise Jekyll::LanguagePlugin::PluginError.new("Language name #{name} not found in translation.")
  end

  str
end

.get_language_string(context, key, tokens = nil) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/jekyll/language-plugin/liquid_context.rb', line 21

def self.get_language_string(context, key, tokens=nil)
  language_data = self.get_language_data(context)
  language = self.get_language(context)

  subset = context.registers[:page]['subset']

  if tokens.is_a?(Array) && tokens.length > 0
    unless subset.to_s.empty?
      str = language_data.get_with_placeholders([subset, key], tokens, language)
    end
    str ||= language_data.get_with_placeholders(key, tokens, language)
  else
    unless subset.to_s.empty?
      str = language_data.get([subset, key], language)
    end
    str ||= language_data.get(key, language)
  end

  if str.nil?
    raise Jekyll::LanguagePlugin::PluginError.new("Key #{key} not found in translation.")
  end

  str
end

.get_localized_date(context, date, format_key) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/jekyll/language-plugin/liquid_context.rb', line 46

def self.get_localized_date(context, date, format_key)
  language_data = self.get_language_data(context)
  language = self.get_language(context)

  subset = context.registers[:page]['subset']
  format_str = language_data.get([subset, format_key], language) unless subset.to_s.empty?
  format_str ||= language_data.get(format_key, language)

  if format_str.nil?
    raise Jekyll::LanguagePlugin::PluginError.new("Date format key #{key} not found in translation.")
  end

  date_translation = language_data.get('date', language)

  if date_translation.nil?
    raise Jekyll::LanguagePlugin::PluginError.new('No localized date available for translation.')
  end

  date_localizer = DateLocalizer.new(date_translation)
  date_localizer.localize_date(date, format_str)
end