ruby-on-rails - spanish - rails i18n with parameters
anular pluralidad por defecto para nombre-modelo en rails3 (3)
En primer lugar, debe dejar de usar .pluralize
. Utiliza el Inflector (que se usa principalmente para los internos de Rails, por ejemplo, adivinar los nombres de las tablas para la Hoja modelo -> hojas).
Sheet.model_name.human # => "Beleg"
"Beleg".pluralize # => "Belegs"
Lo que debes hacer es usar la opción :count
.
Sheet.model_name.human(:count => 2) # => "Belege"
Esto requiere que hayas modificado tu de.yml
como tal:
de:
...
activerecord:
...
models:
sheet:
one: Beleg
other: Belege
mi local es: de y me gusta obtener esto:
Sheet.model_name.human.pluralize # => Belegs
para agregarme una "e" al final en lugar de "s"
Sheet.model_name.human.pluralize # => Belege
sólo para la clase de hoja. ¿Puedo agregarlo de alguna manera en mi config / locales / models / de.yml?
Puedes anular las pluralizaciones de esta manera:
En config/initializers/inflections.rb
hacer:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular ''Beleg'', ''Belege''
end
Si no te gusta el número de conteo explícito (como 2), puedes usar :many
por ejemplo,
Sheet.model_name.human(count => :many)
o sin cohete hash (para Ruby> = 1.9):
Sheet.model_name.human(count: :many)