2009-12-07 6 views
7

J'ai également essayé d'utiliser mes traductions d'enregistrement actives dans config/locales/de.yml dans mes vues. Je pensais que je suis intelligent en utilisant ceci:Comment utiliser Rails I18n.t pour traduire un attribut ActiveRecord?

de: 
    activerecord: 
    attributes: 
     user: 
     login: "Benutzerkennung" 
     comment: "Bemerkungen" 

Et à mon avis ceci:

<%= label_tag :login, t('activerecord.attributes.user.login') %> 

Mais au lieu de la valeur de traduction traduction (« Benutzerkennung ») Je reçois le infâme » manque: de , activerecord, attributes, user, login "

Est-ce que quelqu'un a eu ce travail (ne pas utiliser le plugin de traduction d'étiquette (je me méfie des effets secondaires potentiels), ou User.humanize_attribute_name)? Qu'est-ce que je rate? (cela fonctionne quand j'utilise "activerecord1" ou autre chose que activerecord, donc ma configuration semble être bien)

Merci!

Répondre

14

Ok, mon mauvais, ça marche très bien. Je suis tombé dans le piège de formatage YML :(

Pour vous aider à déboguer le long du chemin, utilisez « script/console » et les mentions suivantes: - I18n.locale -> devrait afficher les paramètres régionaux que vous voulez examiner - I18n.t ('activerecord.attributes') -> devrait vous donner toutes les paires clé/valeur pour votre traduction, sinon, vous avez fait une erreur de formatage dans votre fichier YML ou il n'a pu être trouvé

Et btw - le plugin fonctionne assez bien http://github.com/iain/i18n_label/ si vous n'aimez pas le résultat de ".human_name" (que le plugin utilise), il suffit de retomber à I18n.t ('votre clé')

+0

Merci, cela m'a fait réellement vers mon fichier locale étant dans config/locale au lieu de config/locales – TheDeadSerious

+0

Oui, vous pouvez essayer ceci à la dure, en le mappant à la main à votre région activeAccord. Ou, vous pourriez simplement laisser Rails s'en occuper. Tant que votre yml est correct (n'oubliez pas le saut de ligne à la fin du fichier yml), et que vous créez votre label sans donner l'attribut de contenu, il cherchera automatiquement une traduction. –

0

Vous shou Ld mise à niveau Rails gem à v2.3.11 (j'ai essayé d'utiliser 2.3.9, mais aujourd'hui, il n'est pas disponible, donc je vous suggère 2.3.11)!

gem install -v=2.3.11 rails 

Vous pouvez trouver ces problèmes documentés ici: Rails 2.3.9 Release notes

7

Une autre méthode:

<%= label_tag :login, User.human_attribute_name(:login) %> 
Questions connexes