# File lib/active_support/vendor/i18n-0.3.7/i18n/backend/base.rb, line 249
        def merge_translations(locale, data, options = {})
          locale = locale.to_sym
          translations[locale] ||= {}
          separator = options[:separator] || I18n.default_separator
          data = unwind_keys(data, separator)
          data = deep_symbolize_keys(data)

          # deep_merge by Stefan Rusterholz, see http://www.ruby-forum.com/topic/142809
          merger = proc do |key, v1, v2|
            # TODO should probably be:
            # raise TypeError.new("can't merge #{v1.inspect} and #{v2.inspect}") unless Hash === v1 && Hash === v2
            Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : (v2 || v1)
          end
          translations[locale].merge!(data, &merger)
        end