Sha256: 6d2c5b63d8a4853a18666d66bd4d8e63c98f7121f1cbadc7b2b69c20679f4826

Contents?: true

Size: 1.15 KB

Versions: 11

Compression:

Stored size: 1.15 KB

Contents

# A simple exception handler that behaves like the default exception handler
# but additionally logs missing translations to a given log.
#
# Useful for identifying missing translations during testing.
# 
# E.g. 
#
#   require 'globalize/i18n/missing_translations_log_handler
#   I18n.missing_translations_logger = RAILS_DEFAULT_LOGGER
#   I18n.exception_handler = :missing_translations_log_handler
#
# To set up a different log file:
#
#   logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log")
#   I18n.missing_translations_logger = logger

module I18n
  @@missing_translations_logger = nil
  
  class << self
    def missing_translations_logger
      @@missing_translations_logger ||= begin
        require 'logger' unless defined?(Logger)
        Logger.new(STDOUT)
      end
    end
  
    def missing_translations_logger=(logger)
      @@missing_translations_logger = logger
    end
  
    def missing_translations_log_handler(exception, locale, key, options)
      if MissingTranslationData === exception
        missing_translations_logger.warn(exception.message)
        return exception.message 
      else
        raise exception
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 4 rubygems

Version Path
kriss-gettext_i18n-0.2.0 vendor/globalize2/lib/globalize/i18n/missing_translations_log_handler.rb
kriss-gettext_i18n-0.2.1 vendor/globalize2/lib/globalize/i18n/missing_translations_log_handler.rb
kriss-gettext_i18n-0.2.2 vendor/globalize2/lib/globalize/i18n/missing_translations_log_handler.rb
kriss-gettext_i18n-0.2.3 vendor/globalize2/lib/globalize/i18n/missing_translations_log_handler.rb
simonmenke-globalize2-0.0.1 lib/globalize/i18n/missing_translations_log_handler.rb
simonmenke-globalize2-0.0.4 lib/globalize/i18n/missing_translations_log_handler.rb
simonmenke-globalize2-0.0.5 lib/globalize/i18n/missing_translations_log_handler.rb
simonmenke-globalize2-0.0.6 lib/globalize/i18n/missing_translations_log_handler.rb
simonmenke-simonmenke-globalize2-0.0.2 lib/globalize/i18n/missing_translations_log_handler.rb
simonmenke-globalize2-0.0.7 lib/globalize/i18n/missing_translations_log_handler.rb
globalize2-0.1.0 lib/globalize/i18n/missing_translations_log_handler.rb