Sha256: d69784be2820cbbea09228ee5189cad241ac64dea6957c961242a3407256efc4

Contents?: true

Size: 1.31 KB

Versions: 2

Compression:

Stored size: 1.31 KB

Contents

module Jekyll
  module LanguagePlugin
    module DateLocalizer
      def self.localize_date(date, format, context)
        language_data = Jekyll::LanguagePlugin::LiquidContext.get_language_data(context)
        translation = language_data.get('date')

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

        # validate language translation
        if !['abbr_daynames', 'daynames', 'abbr_monthnames', 'monthnames'].all? {|s| translation.key?(s) && translation[s].is_a?(Array) } ||
           translation['abbr_daynames'].size < 7 || translation['daynames'].size < 7 ||
           translation['abbr_monthnames'].size < 12 || translation['monthnames'].size < 12
          raise Jekyll::LanguagePlugin::PluginError.new('Invalid localized date translation.')
        end

        date.strftime(
          format.gsub(/%([aAbB])/){ |m|
              case $1
                when 'a'; translation['abbr_daynames'][date.wday]
                when 'A'; translation['daynames'][date.wday]
                when 'b'; translation['abbr_monthnames'][date.mon-1]
                when 'B'; translation['monthnames'][date.mon-1]
                else
                  raise Jekyll::LanguagePlugin::PluginError.new('Internal error.')
              end
            })
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jekyll-language-plugin-1.2.2 lib/jekyll/language-plugin/date_localizer.rb
jekyll-language-plugin-1.2.0 lib/jekyll/language-plugin/date_localizer.rb