如何使用I18n.localize的语言环境结构?

时间:2014-10-08 13:40:09

标签: ruby-on-rails ruby-on-rails-4 locale yaml rails-i18n

I18n gem中提供的区域设置结构可能类似于following

de:
  date:
    abbr_day_names:
    - So
    - Mo
    - Di
    - Mi
    - Do
    - Fr
    - Sa

但是尝试输出described in the guides这一天并不起作用,看起来它似乎在语言环境中寻找format:

I18n.locale = :de
l(Date.current, format: :abbr_day_names)

" I18n :: MissingTranslationData:缺少翻译:de.date.formats.abbr_day_names"

1 个答案:

答案 0 :(得分:6)

这是你应该做的(法语使用):

  date:
    abbr_day_names: [Dim, Lun, Mar, Mer, Jeu, Ven, Sam]
    abbr_month_names: [~, Jan, Fév, Mar, Avr, Mai, Jun, Jul, Août, Sep, Oct, Nov, Déc]
    day_names: [Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi]
    formats:
      day_month: "%b %d"
      default: "%Y-%m-%d"
      hour: "%H:%M"
      long: "%A %d %B %Y"
      long_month: "%d %B %Y"
      month_abbr: "%d %b %Y"

因此,在date.abbr_day_names中,您可以定义缩写的日期名称,date.abbr_months_names也是如此。然后,您可以设置date.formats.name_of_your_format

中的自定义格式

在您的视图中,您可以这样使用它:

l(Date.current, format: :long)
# OR
l(Date.current, format: :month_abbr)
# etc.

它与datetime.formatstime.formats的作用相同。


以下是日期/时间格式的常见en-US.yml文件示例:https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en-US.yml

我找不到有关i18n本地化系统中可用的每个通配符的完整文档。如果有人知道从哪里获得它,您的意见将非常感谢!