# 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