Avant de passer à la version 3.0.3 tout fonctionnait bien sous 2.3.8. Maintenant quoi que je fasse, le 'header' du message d'erreur ne 'comprend' pas l'interpolation du fichier de locale et affiche:
1 2
|
"Impossible d'enregistrer %{model} : %{count} erreurs" |
Donc au lie d'afficher le nom du modèle en question et le nombre d'erreurs lors de validation, il affiche ces signes d'interpolation.
Quelqu’un a déjà su résoudre ce problème?
J'ai pris le dernier fichier 'YML' de locale FR sur github de I18n(ci-attaché) et juste rajouté 'autres attributs des modèles. Puis, comme j'utilise 'nifty-generators', j'ai du aussi modifier le helper 'error_messages_helper.rb':
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
module ErrorMessagesHelper
# Render error messages for the given objects. The :message and :header_message options are allowed.
def error_messages_for(*objects)
options = objects.extract_options!
options[:header_message] ||= t("activerecord.errors.template.header.other")
options[:message] ||= t("activerecord.errors.template.body")
messages = objects.compact.map { |o| o.errors.full_messages }.flatten
unless messages.empty?
content_tag(:div, :class => "error_messages") do
list_items = messages.map { |msg| content_tag(:li, msg) }
content_tag(:h2, options[:header_message]) + content_tag(:p, options[:message]) + content_tag(:ul, list_items.join.html_safe)
end
end
end
module FormBuilderAdditions
def error_messages(options = {})
@template.error_messages_for(@object, options)
end
end
end
ActionView::Helpers::FormBuilder.send(:include, ErrorMessagesHelper::FormBuilderAdditions) |
Sinon, les reste du message est correctement traduit. Bien sur, j'ai aussi modifié le fichier application.rb:
1 2 3
|
config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.default_locale = :fr |
Rails-v : 3.0.3
Ruby -v: 1.9.2.
Merci d'avance.
Partager