• 20 hours
  • Medium

Free online content available in this course.

course.header.alt.is_certifying

Got it!

Last updated on 1/17/17

Traduisez vos formulaires

Log in or subscribe for free to enjoy all this course has to offer!

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

Example of certificate of achievement
Example of certificate of achievement