def merge(other_lookup_context)
      new_lookup_hash = lookup_hash.dup
      new_lookup_hash[:language_codes] |= other_lookup_context.language_codes

      other_lookup_context.language_codes.each do |language_code|
        new_lookup_hash[language_code] ||= {}
        new_lookup_hash[language_code].merge!(other_lookup_context.lookup_hash[language_code])
      end

      LookupContext.new(new_lookup_hash)
    end
def merge(other_lookup_context)
      new_lookup_hash = lookup_hash.dup
      new_lookup_hash[:language_codes] |= other_lookup_context.language_codes

      other_lookup_context.language_codes.each do |language_code|
        new_lookup_hash[language_code] ||= {}
        new_lookup_hash[language_code].merge!(other_lookup_context.lookup_hash[language_code])
      end

      LookupContext.new(new_lookup_hash)
    end
NOTE: This code is ugly. Refactor me :(