/** * @param ApplicationUser[] $users * @param object $object * @param string $language * @return DefaultMessage */ public function buildMessage(array $users, $object, $language = null) { $filteredUsers = self::filterUsers($users); if (count($filteredUsers) === 0) { return null; } $messageResource = $this->extractor->extractMessage($object); if ($messageResource === null) { return null; } $language = $language ?: self::getLanguage($filteredUsers); try { $translatedText = $this->resourceTranslator->translate($language, $messageResource); } catch (\IntlException $e) { $translatedText = $messageResource->getKey(); } return new DefaultMessage($filteredUsers, $translatedText); }