5

¿Cuál es la manera SECA de traducir ciertos campos?Rieles I18n: acortar las llamadas de traducción (al menos en las vistas)

En mis vistas REST, tengo algunos fragmentos que se repiten, como esto en un espectáculo de vista:

... 
<dt><%= t("activerecord.attributes.user.firstname") %></dt> 
<dd><%= @user.firstname %></dd> 
... 

Ahora, en lugar de escribir t("activerecord.attributes.user.attr_name") una y otra vez, me gustaría escribir solamente t(:attr_name) (similar a f.label :firstname en las vistas de formulario).

Básicamente, esto no debería ser un problema (al menos para las vistas RESTful), ya que el módulo I18n podría consultar el método controller para extrapolar el nombre del modelo y luego adivinar la cadena de traducción correcta.

Mi pregunta: ¿Alguien tiene experiencia práctica con este enfoque? ¿Podría haber incluso un RubyGem para eso? O: ¿hay trampas, no pensé en?

Respuesta

2

la forma recomendada de hacer esto es poner esto en un parcial (por ejemplo app/views/user/_form.html.erb o incluso app/views/user/_user.html.erb), y luego preceder al nombre con un punto inicial, por lo tanto:

<dt><%= t(".firstname") %></dt> 
<dd><%= user.firstname %></dd> 

Más información: examples (de Agile Web Development with Rails); Rails documentation

+3

El uso de parciales parece ser bastante agradable, pero creo que solo será SECO, si el mismo contenido se mostrará repetidamente. La documentación también dice que al llamar 't ('. Foo')' desde la plantilla people/index.html.erb se está llamando a 't ('people.index.foo')'. No quiero mantener el desorden en mis archivos locales ... – DMKE

Cuestiones relacionadas