При использовании гема i18n (что делает Rails), вы можете указать свой собственный обработчик исключений. Попробуйте этот код:
# A simple exception handler that behaves like the default exception handler
# but additionally logs missing translations to a given log.
#
module I18n
class << self
def missing_translations_logger
@@missing_translations_logger ||= Logger.new("#{RAILS_ROOT}/log/missing_translations.log")
end
def missing_translations_log_handler(exception, locale, key, options)
if MissingTranslationData === exception # use MissingTranslation in Rails 3.x !!!
puts "logging #{exception.message}"
missing_translations_logger.warn(exception.message)
return exception.message
else
raise exception
end
end
end
end
I18n.exception_handler = :missing_translations_log_handler
(поместите его, например, в RAILS_ROOT / config / initializers / i18n.rb)
Теперь, когда вы пытаетесь перевести ключ, для которого перевод не указан, выдается предупреждение в RAILS_ROOT / log / missing_translations.log.
Надеюсь, это поможет!