【问题标题】:How to use locale structure for I18n.localize?如何为 I18n.localize 使用语言环境结构?
【发布时间】:2014-12-03 04:50:27
【问题描述】:

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”

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多