Sha256: d571e85e8d1cbe49ec0e0b3ddf18775e638ff5785f22cd5d4842c902f8e1acef

Contents?: true

Size: 1.43 KB

Versions: 70

Compression:

Stored size: 1.43 KB

Contents

module Bhf
  module I18nTranslationFallbackHelper
    def self.included(base) 
      base.module_eval do
        class << self
          def translate_with_fallback(text, options = {})
            return translate_without_fallback(text, options) unless text.to_s.split('.')[0] == 'bhf'

            default = options.delete(:default)
          
            [locale, :en].each do |lookup_locale|
              translation_found, translation = attempt_translation(text, options.merge(locale: lookup_locale))
              return translation if translation_found
            end
          
            # Ensure 'translation missing' return is exactly the default behaviour
            translate_without_fallback(text, options.merge(default: default))
          end
        
          def attempt_translation(text, options = {})
            puts "Attempting translation of '#{text}' with locale '#{options[:locale]}'." if options[:debug]
            translation = translate_without_fallback(text, options.merge(raise: true))
            translation_found = options[:locale]
          rescue I18n::MissingTranslationData
            translation_found = nil
            translation = "translation missing: #{options[:locale]}, #{text}"
          ensure
            return translation_found, translation
          end
          
          alias_method_chain :translate, :fallback
          alias_method :t, :translate_with_fallback
        end
      end 
    end
  end
end

Version data entries

70 entries across 70 versions & 1 rubygems

Version Path
bhf-0.6.28 lib/bhf/i18n.rb
bhf-0.6.27 lib/bhf/i18n.rb
bhf-0.6.26 lib/bhf/i18n.rb
bhf-0.6.25 lib/bhf/i18n.rb
bhf-0.6.24 lib/bhf/i18n.rb
bhf-0.6.23 lib/bhf/i18n.rb
bhf-0.6.22 lib/bhf/i18n.rb
bhf-0.6.21 lib/bhf/i18n.rb
bhf-0.6.20 lib/bhf/i18n.rb
bhf-0.6.15 lib/bhf/i18n.rb
bhf-0.6.14 lib/bhf/i18n.rb
bhf-0.6.13 lib/bhf/i18n.rb
bhf-0.6.12 lib/bhf/i18n.rb
bhf-0.6.11 lib/bhf/i18n.rb
bhf-0.6.10 lib/bhf/i18n.rb
bhf-0.6.6 lib/bhf/i18n.rb
bhf-0.6.5 lib/bhf/i18n.rb
bhf-0.6.4 lib/bhf/i18n.rb
bhf-0.6.3 lib/bhf/i18n.rb
bhf-0.6.2 lib/bhf/i18n.rb