Есть ли по умолчанию английский перевод для Active Record? - PullRequest
7 голосов
/ 23 апреля 2009

Я обновляю приложение rails application до 2.3.2 и обнаруживаю, что не могу отобразить сообщения об ошибках проверки по умолчанию для ActiveRecord, потому что у меня нет файла перевода для него.

Это сообщение об ошибке:

translation missing: en-US, activerecord, errors, template, header
translation missing: en-US, activerecord, errors, template, body
Email translation missing: en-US, activerecord, errors, models, user, attributes, email, taken

Кто-нибудь знает, где я могу найти файл перевода по умолчанию на английский язык, который будет включать все строки, которые могут использовать проверки?

Ответы [ 3 ]

14 голосов
/ 30 апреля 2009

Это произошло из-за того, что мой язык был «en-US», а не «en». Есть файлы перевода в activerecord / lib / locale. Я скопировал эти переводы в новый файл en_US.yml.

"en-US": 
  activerecord:
    errors: 
        template: 
            body: There were problems with the following fields
            header: 
                one: 1 error prohibited this {{model}} from being saved
                other: "{{count}} errors prohibited this {{model}} from being saved"  
        messages:
            inclusion: "is not included in the list"
            exclusion: "is reserved"
            invalid: "is invalid"
            confirmation: "doesn't match confirmation"
            accepted: "must be accepted"
            empty: "can't be empty"
            blank: "can't be blank"
            too_long: "is too long (maximum is {{count}} characters)"
            too_short: "is too short (minimum is {{count}} characters)"
            wrong_length: "is the wrong length (should be {{count}} characters)"
            taken: "has already been taken"
            not_a_number: "is not a number"
            greater_than: "must be greater than {{count}}"
            greater_than_or_equal_to: "must be greater than or equal to {{count}}"
            equal_to: "must be equal to {{count}}"
            less_than: "must be less than {{count}}"
            less_than_or_equal_to: "must be less than or equal to {{count}}"
            odd: "must be odd"
            even: "must be even"

Тогда я просто добавил свои собственные строки после них.

1 голос
/ 19 августа 2013

Вы можете избежать копирования и вставки стандартных переводов, сказав I18n отступить на: en, когда он не может найти перевод на: en_US. Приведенный ниже пример инициализатора показывает, как мы сделали это для перехода от «en-GB» и «it-IT» к стандарту «en», добавляя множественные числа для хорошей меры

# config/initializer/i18n.rb 

I18n.backend = I18n::Backend::Chain.new(I18n.backend)
I18n::Backend::Chain.send(:include, I18n::Backend::Fallbacks)
I18n.fallbacks[:'en-GB'] << :en
I18n.fallbacks[:'it-IT'] << :en

require "i18n/backend/pluralization" 
I18n::Backend::Chain.send(:include, I18n::Backend::Pluralization)
0 голосов
/ 09 июня 2009

К вашему сведению, если вы включаете их в хэш-формат старого стиля, используйте это;

:activerecord => {
  :errors => {
      :template => {
          :body => 'There were problems with the following fields',
          :header => { 
              :one => '1 error prohibited this {{model}} from being saved',
              :other => "{{count}} errors prohibited this {{model}} from being saved"
          }
      },
      :messages => {
          :inclusion => "is not included in the list",
          :exclusion => "is reserved",
          :invalid => "is invalid",
          :confirmation => "doesn't match confirmation",
          :accepted => "must be accepted",
          :empty => "can't be empty",
          :blank => "can't be blank",
          :too_long => "is too long (maximum is {{count}} characters)",
          :too_short => "is too short (minimum is {{count}} characters)",
          :wrong_length => "is the wrong length (should be {{count}} characters)",
          :taken => "has already been taken",
          :not_a_number => "is not a number",
          :greater_than => "must be greater than {{count}}",
          :greater_than_or_equal_to => "must be greater than or equal to {{count}}",
          :equal_to => "must be equal to {{count}}",
          :less_than => "must be less than {{count}}",
          :less_than_or_equal_to => "must be less than or equal to {{count}}",
          :odd => "must be odd",
          :even => "must be even"
      }
  }

}

...