# File lib/active_support/vendor/i18n-0.4.1/i18n/backend/gettext.rb, line 42
        def normalize(locale, data)
          data.inject({}) do |result, (key, value)|
            unless key.nil? || key.empty?
              key, value = normalize_pluralization(locale, key, value) if key.index("\000")

              parts = key.split('|').reverse
              normalized = parts.inject({}) do |normalized, part|
                normalized = { part => normalized.empty? ? value : normalized }
              end

              # deep_merge by Stefan Rusterholz, see http://www.ruby-forum.com/topic/142809
              merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 }
              result.merge!(normalized, &merger)
            end
            result
          end
        end