public function getClientBillStatusText(User $client, $year, $quarter) { $status = $this->getClientBillStatus($client, $year, $quarter); if ($status < 0) { return $this->translator->transChoice('bill.accounts_require_attention', -$status, array('%count%' => -$status)); } return $this->translator->trans('bill.status' . $status); }
/** * Converts dates into relative textual dates * * Ex: x days ago, yesterday, tomorrow, in x days * * @param \DateTime $date * * @throws \InvalidArgumentException * @return string */ public function textualDateFilter($date) { if (!$date instanceof \DateTime) { throw new \InvalidArgumentException('Textual Date Filter expects input to be a instance of DateTime'); } $now = new \DateTime('now'); $diff = $now->diff($date); $diffUnit = $this->getHighestDiffUnitAndValue($diff); $temporalModifier = $diff->invert ? 'ago' : 'next'; $translationString = $temporalModifier . '.' . $diffUnit['unit']; // Override yesterday and tomorrow if ($diffUnit['unit'] == 'd' && $diffUnit['value'] == 1) { $translationString = $diff->invert ? 'date.yesterday' : 'date.tomorrow'; } // Override "just.now" if ($diffUnit['unit'] == 'now') { $translationString = 'date.just_now'; } return $this->translator->transChoice($translationString, $diffUnit['value'], array('%value%' => $diffUnit['value']), 'date'); }
/** * @see \Symfony\Component\Translation\Translator::transChoice() */ public function transChoice($id, $number, array $parameters = array(), $domain = 'messages', $locale = null) { if (null === $locale) { $locale = $this->getLocale(); } if (!isset($this->selector)) { $this->selector = new MessageSelector(); } $message = $this->getMessage($id, $domain, $parameters, $locale); if ($message->getContent()) { // return entity translation return strtr($this->selector->choose($message->getContent(), (int) $number, $locale), $parameters); } // else return translation handled by sf return parent::transChoice($id, $number, $parameters, $domain, $locale); }
/** * @param string $string * @param string array $params * @param string $domain * @param int $number * @return string */ private function trans($string, array $params = [], $domain, $number = 1) { return $this->translator->transChoice($string, $number, $params, $domain); }