为time_ago_in_words自定义I18n

时间:2015-12-02 16:00:36

标签: ruby-on-rails ruby-on-rails-4 internationalization

我将time_ago_in_words用于未来的时间戳和过去。

这就是en.yml的样子:

datetime:
  distance_in_words:
    x_days:
      one:   "1 day"
      other: "%{count} days"

如果时间戳不是未来,我想打印出“昨天”而不是“1天”。

这有可能吗?

1 个答案:

答案 0 :(得分:1)

简短回答为否,time_ago_in_words只需致电distance_of_time_in_words,将to_time参数设为Time.now

编辑:为了便于阅读。

长答案(在评论中讨论):可以使用distance_of_time_in_words设置:scope选项来使用您的翻译而不是默认翻译。不过,明天和昨天从现在开始是“1天”,因此有必要将其包装在一个自定义方法中,以不同的方式处理过去和未来的日期。