He definido atributos traducidos y nombres de modelo en el archivo de traducción y Modelname.human_attribute_name (...) devuelve el nombre de atributo traducido correctamente, pero los nombres de atributo en los mensajes de error no están traducidos. ¿Qué se necesita para que se traduzcan los nombres de los atributos en los mensajes de error?Atributos traducidos en mensajes de error Rails (Rails 2.3.2, I18N)
Respuesta
Desde el Guide sobre el tema, tendrá que configurar el archivo de localización correctamente con sus nombres de modelos y nombres de atributos:
en:
activerecord:
models:
user: Dude
attributes:
user:
login: "Handle"
Dado que este es YAML, asegúrese de que todas sus "fichas" son en realidad dos espacios blandos Luego puede sacarlos con User.human_name
y User.human_attribute_name(:login)
.
No lo tomé por gospel, podría haber un error. Lo probé y funciona bien. Hice un modelo llamado Model
con un atributo title
. Aquí hay un fragmento de mi archivo fr.yml
en config/locales
:
fr:
activerecord:
models:
model: "Sumfink"
attributes:
model:
title: "Tiltile"
Aquí está el código de la vista correspondiente:
<h1>New <%= Model.human_name %></h1>
<% form_for(@model) do |f| %>
<%= f.error_messages %>
<%= Model.human_attribute_name("title") %><br />
<%= f.text_field :title %>
<%= f.error_message_on :title %>
...
Y una captura de pantalla de la salida correctamente traducido: http://screencast.com/t/et5FhVe1Gp
Muchas gracias por su respuesta detallada. Lo intenté con un nuevo proyecto. Utilicé un archivo de traducción de un proyecto existente y agregué un nuevo modelo para probar la traducción y la traducción funcionó de inmediato. No tengo acceso al archivo de traducción original, donde las cadenas no se usaron para la traducción, porque está en mi lugar de trabajo. Lo veré el lunes para ver qué es diferente. La aplicación con la traducción exitosa se estaba ejecutando en Linux, la aplicación en el trabajo se ejecuta en Windows. –
Mi archivo de traducción fue correcto. Omití la parte "_id" del nombre de la columna porque no se muestran en el mensaje de error de la vista. Utilicé "modelo" en lugar de "modelo_id". –
El enlace a la captura de pantalla está roto. ¿Tiene otro que podría suministrar? Gracias – mkelley33
Felicitaciones a Ian, justo quería agregar que para resaltar la etiqueta en caso de una validación fallida debe escribirlo así:
<%= f.label "title", Model.human_attribute_name("title") %><br />
Por alguna razón, al igual que escribirlo:
<%= f.label "title" %><br />
no muestra la traducción.
¿Qué versión de Rails estás usando? Este error de etiqueta se corrigió en 2.3.6: https://rails.lighthouseapp.com/projects/8994/tickets/745-form-label-should-use-i18n – giraff
- 1. columna "Toque" updated_at en Rails 2.3.2
- 2. Multiline I18n en Rails 3
- 3. Rails i18n y rutas en javascript
- 4. Ruby on Rails I18n interpolation
- 5. Inflexión de los nombres de los meses en Rails I18n
- 6. Rails I18n del archivo CSS
- 7. I18n de enviar en Ruby on Rails
- 8. temporal de repliegue i18n desactivar en Rails
- 9. Rails I18n claves de traducción anidadas
- 10. Rails 2.3.5 I18n mes/día de traducción de nombres problema
- 11. Atributos anidados en Rails 3
- 12. Personalización de mensajes de error en Rails 3?
- 13. cómo probar i18n en Rails con RSpec
- 14. error de "rescate en const_missing" con Ruby 1.9.1, Rails 2.3.2, y jrails 0.4
- 15. Uso de HTML en mensajes flash Rails
- 16. Rails i18n Config File Management Mejores prácticas
- 17. Custom Rails I18n Locale Pluralization Help
- 18. Colas de mensajes en Ruby on Rails
- 19. ruby on rails mensajes flash -: alerta: error: aviso y: ¿éxito?
- 20. Rails 3: Usar HTML en i18n formar traducciones de ayuda
- 21. ¿Su flujo de trabajo i18n en Rails con TextMate?
- 22. i18n: localización de mensajes de error para el modelo particular
- 23. Ruby on Rails + Devise + I18n: cómo establecer la configuración regional?
- 24. Rails ActiveRecord - Buscar en varios atributos
- 25. Rails i18n: ¿Puedo desactivar los errores de "traducción faltante"?
- 26. Error de falta parcial en Rails 3
- 27. Haz que Rails 2.3.x ignore la gema i18n
- 28. ¿Es una mala práctica buscar en Rails I18n?
- 29. Rails 3 I18n para las tablas de bases de datos
- 30. ¿Qué tipos de mensajes flash están disponibles en Rails?
Tengo un problema similar. Pero en mi aplicación la traducción no funciona para los nombres de modelo. Lo que probablemente sea un error en el código de Rails. Sin embargo, los nombres de atributos se traducen correctamente. –