Rails ES语言环境无法正常工作

时间:2014-07-08 09:27:51

标签: ruby-on-rails internationalization locale

我正在尝试设置Rails区域设置(对于西班牙语),但它似乎无法正常工作。我已将config.i18n.locale = :es行放在我的application.rb

我的es.yml语言环境文件是:

es:
date:
  abbr_day_names:
  - dom
  - lun
  - mar
  - mié
  - jue
  - vie
  - sáb
  abbr_month_names:
  -
  - ene
  - feb
  - mar
  - abr
  - may
  - jun
  - jul
  - ago
  - sep
  - oct
  - nov
  - dic
  day_names:
  - domingo
  - lunes
  - martes
  - miércoles
  - jueves
  - viernes
  - sábado
  formats:
    default: ! '%d/%m/%Y'
    long: ! '%d de %B de %Y'
    short: ! '%d de %b'
  month_names:
  -
  - enero
  - febrero
  - marzo
  - abril
  - mayo
  - junio
  - julio
  - agosto
  - septiembre
  - octubre
  - noviembre
  - diciembre
  order:
  - :day
  - :month
  - :year
datetime:
  distance_in_words:
    about_x_hours:
      one: alrededor de 1 hora
      other: alrededor de %{count} horas
    about_x_months:
      one: alrededor de 1 mes
      other: alrededor de %{count} meses
    about_x_years:
      one: alrededor de 1 año
      other: alrededor de %{count} años
    almost_x_years:
      one: casi 1 año
      other: casi %{count} años
    half_a_minute: medio minuto
    less_than_x_minutes:
      one: menos de 1 minuto
      other: menos de %{count} minutos
    less_than_x_seconds:
      one: menos de 1 segundo
      other: menos de %{count} segundos
    over_x_years:
      one: más de 1 año
      other: más de %{count} años
    x_days:
      one: 1 día
      other: ! '%{count} días'
    x_minutes:
      one: 1 minuto
      other: ! '%{count} minutos'
    x_months:
      one: 1 mes
      other: ! '%{count} meses'
    x_seconds:
      one: 1 segundo
      other: ! '%{count} segundos'
  prompts:
    day: Día
    hour: Hora
    minute: Minutos
    month: Mes
    second: Segundos
    year: Año
errors:
  format: ! '%{attribute} %{message}'
  messages:
    accepted: debe ser aceptado
    blank: no puede estar en blanco
    confirmation: no coincide con la confirmación
    empty: no puede estar vacío
    equal_to: debe ser igual a %{count}
    even: debe ser par
    exclusion: está reservado
    greater_than: debe ser mayor que %{count}
    greater_than_or_equal_to: debe ser mayor que o igual a %{count}
    inclusion: no está incluido en la lista
    invalid: no es válido
    less_than: debe ser menor que %{count}
    less_than_or_equal_to: debe ser menor que o igual a %{count}
    not_a_number: no es un número
    not_an_integer: debe ser un entero
    odd: debe ser impar
    record_invalid: ! 'La validación falló: %{errors}'
    taken: ya está en uso
    too_long: es demasiado largo (%{count} caracteres máximo)
    too_short: es demasiado corto (%{count} caracteres mínimo)
    wrong_length: no tiene la longitud correcta (%{count} caracteres exactos)
  template:
    body: ! 'Se encontraron problemas con los siguientes campos:'
    header:
      one: No se pudo guardar este/a %{model} porque se encontró 1 error
      other: No se pudo guardar este/a %{model} porque se encontraron %{count} errores
helpers:
  select:
    prompt: Por favor seleccione
  submit:
    create: Crear %{model}
    submit: Guardar %{model}
    update: Actualizar %{model}
number:
  currency:
    format:
      delimiter: .
      format: ! '%n %u'
      precision: 2
      separator: ! ','
      significant: false
      strip_insignificant_zeros: false
      unit: €
  format:
    delimiter: .
    precision: 3
    separator: ! ','
    significant: false
    strip_insignificant_zeros: false
  human:
    decimal_units:
      format: ! '%n %u'
      units:
        billion: mil millones
        million: millón
        quadrillion: mil billones
        thousand: mil
        trillion: billón
        unit: ''
    format:
      delimiter: ''
      precision: 1
      significant: true
      strip_insignificant_zeros: true
    storage_units:
      format: ! '%n %u'
      units:
        byte:
          one: Byte
          other: Bytes
        gb: GB
        kb: KB
        mb: MB
        tb: TB
  percentage:
    format:
      delimiter: ''
  precision:
    format:
      delimiter: ''
support:
  array:
    last_word_connector: ! ', y '
    two_words_connector: ! ' y '
    words_connector: ! ', '
time:
  am: am
  formats:
    default: ! '%A, %d de %B de %Y %H:%M:%S %z'
    long: ! '%d de %B de %Y %H:%M'
    short: ! '%d de %b %H:%M'
  pm: pm

我错过了什么吗?

更新: application.rb

module Sushi
  class Application < Rails::Application

    config.i18n.locale = :es

2 个答案:

答案 0 :(得分:1)

我不知道它是否只是一个复制和粘贴错误,但您的语言环境文件有错误的缩进。请注意,yaml格式需要完美的缩进才能工作。

正确的文件应如下所示:(仅摘录:)

es:
  date:
    abbr_day_names:
      - dom
      - lun
      - mar
      - mié
      - jue
      - vie
      - sáb

如果您只有c&amp; p错误且文件正确,请尝试重新启动服务器! (对于乘客:$ touch tmp/restart.txt)这是重新加载区域设置文件所必需的。

答案 1 :(得分:1)

在第一个回答的评论中,您说您正在使用

<%= lanzadera.time.strftime("%B %e, %Y at %I:%M %p") %>

strftime不是I18n知道的,所以你必须像这样使用它

<%= l lanzadera.time, format: :long %>

lI18n.l的简写如果您需要特殊格式,只需在es.yml文件中的时间/格式下添加一行。