Sha256: 6aeef0acd39bfc98ba312a40474da75819c60d56dd101f46de6550f01a022e14

Contents?: true

Size: 1.16 KB

Versions: 10

Compression:

Stored size: 1.16 KB

Contents

require 'liquid'

module Jekyll
  module Language
    
    @@lang = nil
    
    # Supplies translated text
    #
    # Usage: {{ 'author' | t: 'recent_articles' }}
    def t(section, item)
      site = @context.registers[:site]

      if site.data['language'] == nil
        Jekyll.logger.warn 'Liquid Language:', 'No _data/language file found. ' + 
          site.data.keys.join(', ')
      end

      if @@lang == nil
        # Access this fewer times by keeping it as a module variable
        @@lang = Jekyll.configuration({})['language']
      end
      
      # Find text in the site language (for example 'fr-be')
      text = site.data['language'][section][item][@@lang]

      # Fall back to a more general version of the language (for example 'fr')
      if text == nil and @@lang.include? '-'
        fallback_lang = @@lang.split('-')[0];
        text = site.data['language'][section][item][fallback_lang]
      end

      if text == nil
        # Fallback to English text
        text = site.data['language'][section][item]['en']
      end

      return text
    end
  end
end

Liquid::Template.register_filter(Jekyll::Language)

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
fenton-jekyll-plugin-0.0.13 lib/fenton-jekyll-plugin/jb_liquid_language.rb
fenton-jekyll-plugin-0.0.12 lib/fenton-jekyll-plugin/jb_liquid_language.rb
fenton-jekyll-plugin-0.0.11 lib/fenton-jekyll-plugin/jb_liquid_language.rb
fenton-jekyll-plugin-0.0.10 lib/fenton-jekyll-plugin/jb_liquid_language.rb
fenton-jekyll-plugin-0.0.9 lib/fenton-jekyll-plugin/jb_liquid_language.rb
fenton-jekyll-plugin-0.0.8 lib/fenton-jekyll-plugin/jb_liquid_language.rb
fenton-jekyll-plugin-0.0.7 lib/fenton-jekyll-plugin/jb_liquid_language.rb
fenton-jekyll-plugin-0.0.6 lib/fenton-jekyll-plugin/jb_liquid_language.rb
fenton-jekyll-plugin-0.0.5 lib/fenton-jekyll-plugin/jb_liquid_language.rb
fenton-jekyll-plugin-0.0.4 lib/fenton-jekyll-plugin/jb_liquid_language.rb