rails3 I18n: невозможно переопределить "1 ошибка запретила сохранение этого пакета:" - PullRequest
8 голосов
/ 29 сентября 2010

Когда я получаю ошибки на модели Packet, я всегда вижу первую (английскую = не переведенную) строку:

1 error prohibited this packet from being saved:
Naam Gelieve het veld Naam in te vullen!

Найдены переводы для ошибки для одного поля!

Пока в моем nl.yml

есть следующее
nl:

  activemodel:
    errors:
      template:
        header:
          one:   "1 fout voorkwam dat dit %{model} kon bewaard worden"
          other: "%{count} fouten voorkwamen dat deze %{model} kon bewaard worden"
        body:    "Er waren problemen met de volgende velden:"

  errors:
    template:
      body: "Controleer alstublieft de volgende velden:"
      header:
        one: "Kon dit {{model}} object niet opslaan: 1 fout."
        other: "Kon dit {{model}} niet opslaan: {{count}} fouten."

  activerecord:
    errors:
      template:
        header:
          one:   "1 fout voorkwam dat dit %{model} kon bewaard worden"
          other: "%{count} fouten voorkwamen dat deze %{model} kon bewaard worden"
        body:    "Er waren problemen met de volgende velden:"
      messages:
        blank: Gelieve het veld %{attribute} in te vullen!
    models:
      survey: test
      packet: woordenlijst
      user: gebruiker
    attributes:
      survey:
        name: Naam

Если бы вы смотрели много вещей на rails-i18n, скачали их nl.yml, но ничего не помогло. У кого-нибудь есть подсказка, почему он не работает?

Я думал, что это был возможный конфликт с другими файлами (у меня есть файлы локализации для двух других драгоценных камней), но их временное удаление ничего не изменило.

Кто-нибудь знает, как это отладить?

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

1 Ответ

12 голосов
/ 01 октября 2010

Doh!Нашел это!Глупый я!

В забыл, что в рельсах 3 вы больше не используете error_messages_for, поэтому вместо этого в моем коде представления лесов был следующий код:

 = form_for @packet do |f|
   -if @packet.errors.any?
     #errorExplanation
       %h2= "#{pluralize(@packet.errors.count, "error")} prohibited this packet from being saved:"

Так что, не удивительноне мог перевести это.Aaaaarrrgghh !!!!1011 *

  -if @packet.errors.any?
    #errorExplanation
      %h2
        - if @packet.errors.count == 1
          = t 'activerecord.errors.template.header.one', :model => @packet.class.human_name
        - else
          = t 'activerecord.errors.template.header.other', :model => @packet.class.human_name, :count => @packet.errors.count
      %b= t 'activerecord.errors.template.body'
      %ul
        - @packet.errors.full_messages.each do |msg|
          %li= msg

Но, поскольку нам нужно сделать это для каждого представления, в котором могут быть ошибки, это должно быть частичным, или использовать плагин, упомянутый выше:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...