• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 17/01/2017

Traduisez vos formulaires

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Si vous allez sur une vue impliquant un formulaire (new ou edit par exemple), vous constaterez qu’il n’y a pas de texte dans les vues. En effet, les helpers comme label ou textarea utilisent déjà l’i18n. Les champs de formulaires pouvant être affichés sur plusieurs pages différentes, leurs clés ne dépendent pas de l’arborescence des fichiers, mais du modèle auquel l'attribut est associé.

# config/locales/fr.yml
fr:
  activerecord:
    models:
      post: "Post"
    attributes:
      post:
        content: "Contenu"

Pour chaque modèle (ici uniquement Post) est donné sa traduction et la traduction de ses attributs. Ces traductions seront utilisées automatiquement par les helpers et les messages d'erreurs.

Il y a pas mal de clé de traduction "invisibles" (qui ne sont pas utilisées directement par la fonction t() ) comme pour formulaires : pour les helpers intégrés à Rails, pour les mails, pour les erreurs, etc. Vous les trouverez ici : http://guides.rubyonrails.org/i18n.html

Ces clés sont en grande partie traduites par la gem rails-i18n que je vous invite à installer : https://github.com/svenfuchs/rails-i18n

Mais même avec cette gem, les traductions ne sont pas très professionnelles. Exemple :

# app/models/post.rb
class Post < ActiveRecord::Base
  validates :content, presence: true
end

Si vous validez un formulaire vide, l’erreur sera "Contenu doit être rempli(e)". Pas très classe ! Alors n’hésitez pas à écrire vos propres traductions pour bien personnaliser tous vos textes :

# config/locales/fr.yml
fr:
  activerecord:
    models:
      post: "Post"
    attributes:
      post:
        content: "Contenu"
    errors:
      models:
        post:
          attributes:
            post:
              content:
                blank: "Vous devez indiquer un contenu"

Le détail des clés de traduction est accessible dans la documentation de Rails : http://guides.rubyonrails.org/i18n.html#translations-for-active-record-models

Exemple de certificat de réussite
Exemple de certificat de réussite