2016-08-02 13 views
0

Nachdem ich die App in Englisch programmiert hatte, aktualisierte ich die Sprachdatei (pt-BR.yml), die 'config/application.rb' (die Standardeinstellung auf pt-BR) und die 'inflections.rb'in Reihenfolge habe die Fehlermeldungen in meiner lokalen Sprache.Wie verhindert man, dass i18n Modelle in Rails pluraliert?

Allerdings findet Rails jetzt mein Modell nicht, weil seine Logik nicht mehr in Englisch pluraliert.

Gibt es eine Möglichkeit zu verhindern, dass Rails die lokale Standardsprache in Modellen und Controllern verwendet? Oder gibt es eine bessere Kodierungspraxis dafür? Danke.

Antwort

0

Sie können Ihre inflections.rb konfigurieren, anstatt die Standardsprache zu konvertieren. Sie können das tun, wie so:

ActiveSupport::Inflector.inflections(:es) do |inflect| 


inflect.plural(/$/, 's') 
    inflect.plural(/([^aeéiou])$/i, '\1es') 
    inflect.plural(/([aeiou]s)$/i, '\1') 
    inflect.plural(/z$/i, 'ces') 
    inflect.plural(/á([sn])$/i, 'a\1es') 
    inflect.plural(/é([sn])$/i, 'e\1es') 
    inflect.plural(/í([sn])$/i, 'i\1es') 
    inflect.plural(/ó([sn])$/i, 'o\1es') 
    inflect.plural(/ú([sn])$/i, 'u\1es') 

    inflect.singular(/s$/, '') 
    inflect.singular(/es$/, '') 

    inflect.irregular('el', 'los') 
end 

genommen Code aus https://davidcel.is/posts/edge-rails-a-multilingual-inflector/

Es ist wie sein Edelstein aussieht unterstützt auch pt-BR https://github.com/davidcelis/inflections. Ich habe es nicht persönlich ausprobiert, aber es sieht normal aus.

+0

Vielen Dank! Obwohl ich immer noch nicht genau weiß, wie man die Modellsprache auswählt, hat es mir geholfen, Flexionen in mehr als einer Sprache zu haben. –