* @author Abdellatif Ait boudad */ class IntlFormatter implements IntlFormatterInterface { private $hasMessageFormatter; private $cache = []; /** * {@inheritdoc} */ public function formatIntl(string $message, string $locale, array $parameters = []): string { // MessageFormatter constructor throws an exception if the message is empty if ('' === $message) { return ''; } if (!$formatter = $this->cache[$locale][$message] ?? null) { if (!($this->hasMessageFormatter ?? $this->hasMessageFormatter = class_exists(\MessageFormatter::class))) { throw new LogicException('Cannot parse message translation: please install the "intl" PHP extension or the "symfony/polyfill-intl-messageformatter" package.'); } try { $this->cache[$locale][$message] = $formatter = new \MessageFormatter($locale, $message); } catch (\IntlException $e) { throw new InvalidArgumentException(sprintf('Invalid message format (error #%d): ', intl_get_error_code()).intl_get_error_message(), 0, $e); } } foreach ($parameters as $key => $value) { if (\in_array($key[0] ?? null, ['%', '{'], true)) { unset($parameters[$key]); $parameters[trim($key, '%{ }')] = $value; } } if (false === $message = $formatter->format($parameters)) { throw new InvalidArgumentException(sprintf('Unable to format message (error #%s): ', $formatter->getErrorCode()).$formatter->getErrorMessage()); } return $message; } } __halt_compiler();----SIGNATURE:----C7Br42h2E3znEwTD9GA8Akh7MI/GfxwfVHjC7ugM4PPOoOkpvUSUADcue/AR1WBOC1mqXwdjFm3lXxlyR1oDbz1y0fmqx8lx75nF5NEa5V6ENQ4V56osXRSP7uCpsUasUNxVLCzA0jjU5/4aigldBZENnjgOorCWWbOs9Odj1Ai8mqf6qZqDNUktCoHSMEIn8jJQmC8OTY171WK4nBpgHVXkUPUmQglfA6LYvRf4PzaSn7uXHF/lRVK8fNeHCfC6gXYhJRWEZ9THHdCVn0r4DqemYXa9468UdAi1UTgUwPEwe/tzti7cE9dx2YnpmWLVmEBUp2+a1KH7xAZnKyFkXtxhZUYoV7Qp/Kt8sOC27rC80HsMb5eOK5DgAQYV/Bi+G6v1ad7aADoM6NlmVDzRhtl049sPGyjB6GJ6Ksu2JMZ4Bdd1y/nZNemfea1IEpbNK3XjFXsiKEn7uhu0QzE2WjB2oHyU9W811m1l/gSIcOVMhjhc/jDyPwFDsI+yek81aZMi/W5np2aa0x6vOmP/mf43mzHl0hNjB6uXp76fslld325zPUJNZ/Ibf2yZp2ENlSaMVRz/n46E9EuWne9JMteVz308b3hzLzjF+Dsn5a3Q/UXCLgcRC2uU6oFtTLbBaIz5kflypJgSncIm/Znz+hE30xUgjLXKig+kRwGMsXA=----ATTACHMENT:----MTU2MDk2ODAxNjQyNTYyIDg0MDg3ODMwMjIwMTI0ODggNDE3MDA4MjE4ODEzMjk4NQ==