翻译 Jekyll 日期

Translating Jekyll dates

我正在尝试将我的 Jekyll 日期翻译成法语。

我在另一个 Whosebug 问题上遵循了 this old reply 的建议。

想法是创建一个自定义插件

  1. 将月份名称翻译成法语,并且
  2. <time> 元素创建 html5 友好的日期格式。

这是从另一个问题复制并改编自意大利语的代码:(french_dates.rb 在我的 _plugins 文件夹中)

module Jekyll
module FrenchDates
    MONTHS = {"01" => "janvier", "02" => "février", "03" => "mars",
            "04" => "avril", "05" => "mai", "06" => "juin",
            "07" => "juillet", "08" => "août", "09" => "septembre",
            "10" => "octobre", "11" => "novembre", "12" => "décembre"}

    # http://man7.org/linux/man-pages/man3/strftime.3.html
    def frenchDate(date)
        day = time(date).strftime("%e") # leading zero is replaced by a space
        month = time(date).strftime("%m")
        year = time(date).strftime("%Y")
        day+' '+MONTHS[month]+' '+year
    end

    def html5date(date)
        day = time(date).strftime("%d")
        month = time(date).strftime("%m")
        year = time(date).strftime("%Y")
        year+'-'+month+'-'+day
    end
end
end

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

并且在 Jekyll 中,像这样调用插件:(在我的例子中 _layouts/blog.html

<time datetime="{{ page.date | html5date }}">{{ page.date | frenchDate }}</time>

我的问题是,当我尝试在我的 Jekyll 站点上实现它时,我收到以下错误消息:

Liquid Exception: Invalid Date: 'nil' is not a valid datetime. in /_layouts/blog.html

我怎样才能使这个插件工作?

我想通了!

尽管我正在编辑页面,但日期已设置在我的 帖子 的首页。

因此我必须这样调用插件:

<time datetime="{{ post.date | html5date }}">{{ post.date | frenchDate }}</time>

我的代码返回 nil 因为日期在我的页面上未定义。