2010-06-22 9 views
6

Wenn Rails Funktionen für eine Übersetzung (I18n.translate) fragen, ich will nicht, ihren Code analysieren, um die genauen Bereiche usw.Wie zeigen Sie alle angeforderten Übersetzungszeichenfolgen in Rails an?

zu bekommen Wie kann ich eine Debug-Ausgabe in die Konsole für jeden String hinzufügen, dass wurde gefragt?

Beispiele:

I18n.t 'errors.messages.invalid', :scope => :active_record 
# Translation for 'activerecord.errors.messages.invalid' (not) found 

label(:post, :title) 
# Translation for 'activerecord.attributes.post.title' not found 
# Translation for 'views.labels.post.title' not found 
+0

Bis jetzt kann ich nicht eine bessere Antwort als "Lesen Sie den Rails-Code" oder "Verwenden Sie Ihre eigenen Übersetzungs-Strings" (wie im ersten Beispiel). – giraff

Antwort

8

Dies ist keine sehr elegante Lösung, aber es ist für mich gearbeitet. Ich habe eine initialiser erstellt:

require 'i18n' 

if (Rails.env.development? || Rails.env.test?) && ENV['DEBUG_TRANSLATION'] 
    module I18n 
    class << self 
     def translate_with_debug(*args) 
     Rails.logger.debug "Translate : #{args.inspect}" 
     translate_without_debug(*args) 
     end 
     alias_method_chain :translate, :debug 
    end 
    end 
end 

können Sie dann Befehle ausführen wie folgt aus:

$ DEBUG_TRANSLATION=true rake cucumber 

... und Sie werden sehen, dass alle Übersetzungen versucht, STDOUT geworfen. Ich betrachte diesen Produktionscode jedoch nicht, also habe ich ihn in einer Gist gespeichert und habe ihn in dieser Phase nicht in meine Hauptprojektquellensteuerung eingecheckt.

Noddy, aber es macht den Job.

+0

Ich habe aktualisiert, um Änderungen von Andrea D'Amico zu enthalten (siehe andere Antwort). Danke Andrea - nicht sicher, warum ich das überhaupt nicht gemacht habe! –

2

Nur eine kleine Änderung I18n Debug-Meldungen im Protokoll setzen:

Ersatz diese Zeile:

puts "Translate: #{args.inspect}" 

mit

Rails.logger.debug "Translate : #{args.inspect}" 
+0

Danke Andrea; Ich habe diese Änderung in die obige Antwort aufgenommen. +1. –

Verwandte Themen