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”

最佳答案

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

  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本地化系统中可用的每个通配符的完整文档。如果有人知道从哪里得到它,您的意见将不胜感激!

关于ruby-on-rails - 如何为I18n.localize使用语言环境结构?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26258396/

10-16 22:23