/** * Injects default parameters before forwarding to the inner formatter. * * @param string $locale * @param string $message * @param array(string=>mixed) $parameters * @return string The formatted message. */ public function format($locale, $message, array $parameters) { $variables = (new MessageAnalyzer($message))->getParameters(); $defaults = array_fill_keys($variables, null); $parameters = $parameters + $defaults; return parent::format($locale, $message, $parameters); }
/** * Formats the provided message. * * @param string $locale * @param string $message * @param array(string=>mixed) $parameters * @return string The formatted message. */ public function format($locale, $message, array $parameters) { try { return parent::format($locale, $message, $parameters); } catch (\Exception $e) { $this->logger->error('Formatting translation failed.', array('locale' => $locale, 'message' => $message, 'parameters' => $parameters, 'exception' => $e)); return ' (message formatting error)'; } }
/** * Checks if the decorator delegates format() calls to the inner formatter. */ public function testFormatDelegatesToInnerFormatter() { $this->innerFormatter->expects($this->once())->method('format'); $this->decorator->format('de_DE', 'test message', array()); }