/**
  * 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());
 }