Tłumaczenie błędów

Mam taki partial do zbiorczego wypisania błędów nad formularzem.

<% if object && object.errors.any? %>
<div class="error-message">
  <h3>Popraw błędy i spróbuj ponownie</h3>
  <ul>
  <% object.errors.full_messages.each do |msg| %>
    <li><%=msg%></li>
  <% end %>
  </ul>
</div>
<% end %>

Włączyłem i18n, ustawiłem default language na pl, załadowałem z guthuba plik z polskim tłumaczeniem (https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/pl.yml), tylko teraz mam taki problem, że np. dla User przy rejestracji i przesłaniu pustego formualrze dostaję błędy:
Password nie zgadza się z potwierdzeniem
Name nie może byc puste
itd.
Chciałbym, aby zamiast Password było Hasło. W pliku pl.yml, dodałem tłumaczenia, ale wygląda na to, że coś jednak robię źle.

... activemodel: attributes: user: password: hasło name: login errors: <<: *errors activerecord: errors: <<: *errors

Będę wdzięczny za jakąś podpowiedź.

może spróbuj ‘activerecord’ zamiast ‘activemodel’?

Niestety nie działa :frowning:

spróbuj jeszcze z konsoli (rails c)

I18n.locale = :pl I18n.t('activerecord.attributes')
powinny wyświetlić Ci się tłumaczenia atrybutów dla modeli, sprawdź czy nie brakuje user->password.

Edit: działa jednak :slight_smile:

Na wszelki wypadek dałem też te same tłumaczenia w activerecord i activemodel. Wygląda, że jest ok, może do generowania błędów są brane jakieś inne klucze?:

1.9.3-p194 :001 > I18n.locale = :pl => :pl 1.9.3-p194 :002 > I18n.t('activerecord.attributes') => {:user=>{:password=>"hasło", :name=>"login"}} 1.9.3-p194 :003 > I18n.t('activemodel.attributes') => {:user=>{:password=>"hasło", :name=>"login"}}

możesz wrzucić gdzieś cały plik tłumaczeń?

Jest na githubie" https://raw.github.com/svenfuchs/rails-i18n/master/rails/locale/pl.yml

btw. właśnie drugi raz czytam Guides o i18n i jest taki przykład:

Consider a User model with a validation for the name attribute like this:

class User < ActiveRecord::Base
  validates :name, :presence => true
end

The key for the error message in this case is :blank. Active Record will look up this key in the namespaces:

I tutaj moje pytanie, skąd mogę się dowiedzieć jakie sa klucze dla różnych błędów (teraz to już się domyślam większości na podstawie tego tłumaczenia pl.yml) Jak się dokopać do takich informacji?

chodziło mi o Twój plik tłumaczeń.

klucze dla różnych błędów są w źródłach (albo nie znalazłem w dokumentacji).
podstawowe w Railsach to:

inclusion: "nie znajduje się na liście dopuszczalnych wartości" exclusion: "znajduje się na liście zabronionych wartości" invalid: "jest nieprawidłowe" confirmation: "nie zgadza się z potwierdzeniem" accepted: "musi być zaakceptowane" empty: "nie może być puste" blank: "nie może być puste" too_long: "jest za długie (maksymalnie {{count}} znaków)" too_short: "jest za krótkie (minimalnie {{count}} znaków)" wrong_length: "jest nieprawidłowej długości (powinna wynosić {{count}} znaków)" taken: "zostało już zajęte" not_a_number: "nie jest liczbą" greater_than: "musi być większe niż {{count}}" greater_than_or_equal_to: "musi być większe lub równe {{count}}" equal_to: "musi być równe {{count}}" less_than: "musie być mniejsze niż {{count}}" less_than_or_equal_to: "musi być mniejsze lub równe {{count}}" odd: "musi być nieparzyste" even: "musi być parzyste"

A nie, w moim praktycznie nic nie ma, dopiero zacząłem, ale już działa - activerecord zamiast activemodel trzeba było, nie wiem co zrobiłem za pierwszym razem, że mi nie poszło. Wielki dzięki za pomoc.

na dniach robiłem coś takiego samego i wystarczyło że do pl.yml dodałem

#/config/locales/pl.yml activerecord: attributes: user: password: 'Hasło' password_confirmation: 'Potwierdź Hasło' current_password: 'Aktualne hasło' username: 'Nazwa Użytkownika' email: 'E-mail' remember_me: 'zapamiętaj mnie'
u mnie rozwiązało to problem :wink:

ehh spóźniony jestem jak zwykle :stuck_out_tongue: