2010-07-16 5 views
6

Je suis tombé sur du code opensource dans les vues, avec une balise t() similaire à la séquence d'échappement HTML h().Que signifie la balise 't()' dans Ruby on Rails?

<%= f.label :password, t(:password, :scope => "activerecord.attributes.user") -%> 

Qu'est-ce que cela signifie t()?

Répondre

17

t (clés, options = {})

Alias ​​pour traduire

traduire (clés, options = {})

Les délégués à I18n#translate mais effectue également deux fonctions supplémentaires. Tout d'abord, il va attraper MissingTranslationData exceptions et les transformer en spans en ligne qui contient la clé manquante, de sorte que vous pouvez voir dans une vue ce qui manque où. Deuxièmement, il va étendre la clé par le partiel courant si la clé commence par une période. Donc, si vous appelez translate(".foo") à partir du modèle people/index.html.erb, vous appellerez en réalité I18n.translate("people.index.foo"). Cela rend moins répétitif la traduction de nombreuses clés au sein des mêmes partiels et vous donne un cadre simple pour les définir de façon cohérente. Si vous ne préférez pas la clé avec un point, rien n'est converti. Cette méthode est également Lissé comme t

+0

pour le rapide Merci répondre! – Vineeth

0

Est-ce que la traduction de la clé dans les fichiers .yml dans config/locales

t (: mot de passe)

clé est "mot de passe"