ruby Jekyll i18n过滤器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby Jekyll i18n过滤器相关的知识,希望对你有一定的参考价值。

require 'i18n'

# Create folder "_locales" and put some locale file from https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale
module Jekyll
  module I18nFilter
    # Example:
    #   {{ post.date | localize: "%d.%m.%Y" }}
    #   {{ post.date | localize: ":short" }}
    def localize(input, format=nil)
      load_translations
      format = (format =~ /^:(\w+)/) ? $1.to_sym : format
      I18n.l input, :format => format
    end

    def load_translations
      unless I18n::backend.instance_variable_get(:@translations)
        I18n.backend.load_translations Dir[File.join(File.dirname(__FILE__),'../_locales/*.yml')]
        I18n.default_locale = @context.registers[:site].config['locale']
        I18n.enforce_available_locales = false
      end
    end
  end
end

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

以上是关于ruby Jekyll i18n过滤器的主要内容,如果未能解决你的问题,请参考以下文章

ruby [Jekyll补充数据模块]将jekyll post的补充数据文件复制到帖子的内置html附近的位置#data #jekyll

ruby Jekyll模板中的环境变量

ruby 中等喜欢Jekyll的阅读时间

ruby Jekyll为Marked.app渲染

ruby Jekyll标记云/标签页插件

ruby Jekyll的灵活,对数分布,标签云。