Sha256: 2553c914b0b7bd65d195f880571af6442025dbf29eaed7d382f6dd28e7cb1de4

Contents?: true

Size: 1.54 KB

Versions: 4

Compression:

Stored size: 1.54 KB

Contents

module JekyllLanguagePlugin
  module DateLocalizer
    def self.localize_date(date, format, context)
      translation = JekyllLanguagePlugin::LiquidContext.get_language_data(context, 'date')

      # validate language translation
      raise JekyllLanguagePlugin::PluginError.new('Localized date is missing translation.') if translation.nil? ||
        !['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

      #convert to extended Time class
      date2 = JLPTime.at(date.to_i)
      date2.strftime_translate(format, translation)
    end

    class JLPTime < Time
      def strftime_translate(format = '%F', translation)
        result = self.strftime(
          #...you replaced the language dependent parts.
          format.gsub(/%([aAbB])/){ |m|
              case $1
                when 'a'; translation['abbr_daynames'][self.wday]
                when 'A'; translation['daynames'][self.wday]
                when 'b'; translation['abbr_monthnames'][self.mon-1]
                when 'B'; translation['monthnames'][self.mon-1]
                else
                  raise JekyllLanguagePlugin::PluginError.new('Internal error.')
              end
            })
        if defined? @@encoding_converter
          @@encoding_converter.iconv(result)
        else
          result
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jekyll-language-plugin-1.1.4 lib/jekyll-language-plugin/date_localizer.rb
jekyll-language-plugin-1.1.3 lib/jekyll-language-plugin/date_localizer.rb
jekyll-language-plugin-1.1.2 lib/jekyll-language-plugin/date_localizer.rb
jekyll-language-plugin-1.1.1 lib/jekyll-language-plugin/date_localizer.rb