public function setSubject($subject, $translate = true)
    {
        if (false !== $translate) {
            $translator = $this->getTranslator();
            $domain     = $this->getTranslatorTextDomain();

            if (true === $translate) {
                $subject = $translator->translate($subject, $domain);
            } else {
                $args = func_get_args();
                $args[0] = $translator->translate($args[0], $domain);
                $subject = call_user_func_array('sprintf', $args);
            }
        }

        return parent::setSubject($subject);
    }