The method does the same thing twice. I was thinking it would be a quick refactoring to something like:

```ruby

def track_query_description
    parsed_query = parse_query('(variety:sent OR variety:followup_sent OR variety:response OR variety:comment)',
                                :empty => "all requests or comments",
                                :found => "all requests or comments matching text '{{query}}'")

    parsed_query = parse_query('(variety:sent OR variety:followup_sent OR variety:response OR variety:comment)',
                                :empty => "all requests or comments",
                                :found => "all requests or comments matching text '{{query}}'")

    return _("anything matching text '{{query}}'", :query => self.track_query)
end


def parse_query(string, options)
    parsed_query = track_query.gsub(string, '')
    if parsed_query != track_query
        parsed_query.strip!
        if parsed_query.empty?
            _(options[:empty])
        else
            _(options[:found], :query => parsed_query)
        end
    end  
end
```

On closer inspection though, I'm not sure how you'd handle the fact it currently returns early if it matches the first case.