2013-08-27 13 views
6

Die Fehlermeldung übersetzt meine verschachtelten Modellattribute nicht, da sie als Singular definiert ist, aber in den Fehlernachrichten nach einem Plural aussieht.Rails übersetzen Validierungsfehlermeldungen für verschachtelte Attribute i18n

Ich habe ein Model 'Person', die has_many: Adressen hat. Dieses Personenmodell akzeptiert verschachtelte Attribute von 'Adressen'. Ich erstelle Adressen nur zusammen mit einem Personenmodell.

meine locale Datei sieht aus wie

en: 
    activerecord: 
    models: 
     person: 
     one: "Person" 
     other: "People" 
     address: 
     one: 'Address' 
     other: 'Addresses' 
    attributes: 
     person: 
     first_name: 'First name' 
     last_name: 'Last name' 
     middle_name: 'Middel name' 
     address: 
     street: street 
     city: city 
     country: country 

und für die Fehlermeldung:

en: 
    errors: &errors 
    format: ! '%{attribute} %{message}' 
    messages: 
     blank: can't be blank 

Es mit einzelnen Modellen arbeitet aber mit verschachtelten Attributen ich habe ein Problem mit den Überprüfungsmeldungen bekommen.

Da die Nachricht wie angezeigt wird:

@messages= 
    {:first_name=>["can't be blank"], 
    :last_name=>["can't be blank"], 
    :"addresses.street"=>["can't be blank"], 
    :"addresses.city"=>["can't be blank"]}> 

die Suche für addresses.street nicht die Übersetzung findet, da es in der yml Datei nur address.street wird.

Wie kann ich es finden address.street, wenn es nach addresss.street sucht, ohne alle meine Einträge zu verdoppeln?

+0

Vielleicht [kann so antworten] (http://stackoverflow.com/a/11129637/660260) könnte helfen. – Flauwekeul

Antwort

-1

sehen Sie, wie Pluralisierung zu handhaben in dem Rails-Doc

[Schienen i18n] [1] [1]: http://guides.rubyonrails.org/i18n.html#pluralization

3 Pluralisierung In Englisch gibt es nur eine singuläre und eine Pluralform für eine gegebene Zeichenfolge, z "1 Nachricht" und "2 Nachrichten". Andere Sprachen (Arabisch, Japanisch, Russisch und viele mehr) haben unterschiedliche Grammatiken, die zusätzliche oder weniger Pluralformen haben. Somit stellt die I18n-API ein flexibles Pluralisierungsmerkmal bereit.

Verwandte Themen