Comment puis-je traduire le ActiveRecord nom de l'attribut dans les Rails 3.2?
J'ai la suite de la validation de mon modèle ( Utilisateur ):
validates :first_name,:length => {:minimum => 2,:maximum => 50},:format => { :with => /[a-zA-Z]+/ }
J'ai la suite dans ma yml locales fichier:
attributes:
first_name:
too_short: "First name is too short"
too_long: "First name is too long"
invalid: "First name is not valid"
Maintenant, si je commence un rails console
, et écrivez ce qui suit:
a = User.new
a.valid?
a.errors.full_messages
Je vais voir les erreurs suivantes:
["First name First name is too short", "First name First name is not valid"]
Comme vous pouvez le voir, le nom de l'attribut est également ajouté au champ d'erreur. Jusqu'à présent, partout dans mon code, j'ai utilisé model.errors[:field]
, et ce sera toujours de me montrer la chaîne que j'ai dans le fichier yml, mais je voudrais changer les cordes:
attributes:
first_name:
too_short: " is too short"
too_long: " is too long"
invalid: " is not valid"
Et l'utilisation de la full_messages version. Le problème est, je ne sais pas comment traduire le nom de l'attribut. Disons, par exemple, que j'aimerais à la place du prénom, de Nom en premier. Comment aurais-je le faire?
OriginalL'auteur Geo | 2012-05-30
Vous devez vous connecter pour publier un commentaire.
Vous trouverez la réponse ici http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models
dans votre config/locale/(your_lang).yml
changement "fr:" avec le symbole de langue que vous avez besoin pour utiliser
acclamations
il fonctionne sur les rails (5.1.3).
OriginalL'auteur mingle
Dans les Rails 5, après
attributes
, j'ai eu à l'espace de noms avec mon nom du modèle dans le trait de soulignement. Comme ceci:Source: https://stackoverflow.com/a/5526812/1290457
OriginalL'auteur sandre89