I18n下的日期名称

19

没有翻译的话,这将为我获取今天的日期名称:

Date.today.strftime("%A")

我该如何进行本地化?

例如,当 I18n.locale 设置为 fr 时,“Mardi”该如何翻译。


你是否考虑过使用moment等库来处理这个问题,而不是I18n? - JBallin
3个回答

38

你的本地化文件中可能有以下内容:

# example with fr
fr:
  date:
    day_names: [Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi]
#               ^^^^^^^^ a week starts with a Sunday, not a Monday

为了获得今天的名称,您可以执行:

week_day = Date.today.wday # Returns the day of week (0-6, Sunday is zero)
I18n.t('date.day_names')[week_day]

或最终

I18n.l(Date.today, format: '%A')

11
l Date.today, format: "%A"

如果在您的翻译文件中有day_names,则会起作用。


0

如果你使用rails-i18n,你会自动获得星期和月份的已翻译版本,比如:

I18n.l(value, format: "le %A %e %B à %-Hh%M")
# le Dimanche 19 Juillet à 21h00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接