2009-12-07 12 views
7

Intentando usar mis traducciones de registros activos en config/locales/de.yml también en mis vistas. Pensé que soy inteligente utilizando la siguiente:¿Cómo usar Rails I18n.t para traducir un atributo ActiveRecord?

de: 
    activerecord: 
    attributes: 
     user: 
     login: "Benutzerkennung" 
     comment: "Bemerkungen" 

Y en mi opinión, esto:

<%= label_tag :login, t('activerecord.attributes.user.login') %> 

Pero en lugar del valor de la traducción ("Benutzerkennung") Me estoy haciendo el famoso "traducción falta: de , activerecord, attributes, user, login "

¿Alguien ha hecho esto funcionando (no usando el plugin de traducción de etiquetas (soy cauteloso de posibles efectos secundarios), o User.humanize_attribute_name)? ¿Qué me estoy perdiendo? (funciona cuando uso "activerecord1" o algo más que activerecord, por lo que mi configuración parece estar bien)

¡Gracias!

Respuesta

14

Ok, mi mal, funciona bien. Caí en la trampa formato YML :(

para ayudarle a depurar lo largo del camino, el uso "script/consola" y las siguientes declaraciones: - I18n.locale -> debería devolver la configuración regional que desea examinar - I18n.t ('activerecord.attributes') -> debería darle todos los pares clave/valor para su traducción, si no, cometió un error de formato en su archivo YML o no pudo ser encontrado

Y por cierto - el complemento funciona bastante bien http://github.com/iain/i18n_label/ si no le gusta el resultado de ".human_name" (que usa el complemento), simplemente vuelva a I18n.t ('su clave')

+0

Gracias, esto realmente me señaló hacia mi archivo de entorno local estar en config/locale en lugar de config/locales – TheDeadSerious

+0

Sí, podría intentarlo de la manera difícil, asignándolo a su configuración de activerecord a mano. O bien, podrías dejar que Rails se encargue de eso. Siempre que su yml sea correcto (no olvide la nueva línea al final del archivo yml), y cree su etiqueta sin dar el atributo de contenido, buscará una traducción automáticamente. –

0

Usted shou Actualizar la gema de Rails a v2.3.11 (Intenté usar 2.3.9, pero ahora no está disponible, así que te sugiero 2.3.11).

gem install -v=2.3.11 rails 

Usted puede encontrar esta cuestiones documentado aquí: Rails 2.3.9 Release notes

7

Otro método:

<%= label_tag :login, User.human_attribute_name(:login) %> 
Cuestiones relacionadas