PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.5
Independent Analytics – WordPress Analytics Plugin v2.15.5
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / symfony / translation / Formatter / IntlFormatter.php
independent-analytics / vendor / symfony / translation / Formatter Last commit date
IntlFormatter.php 2 years ago IntlFormatterInterface.php 2 years ago MessageFormatter.php 1 month ago MessageFormatterInterface.php 1 month ago
IntlFormatter.php
55 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace IAWPSCOPED\Symfony\Component\Translation\Formatter;
12
13 use IAWPSCOPED\Symfony\Component\Translation\Exception\InvalidArgumentException;
14 use IAWPSCOPED\Symfony\Component\Translation\Exception\LogicException;
15 /**
16 * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
17 * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
18 * @internal
19 */
20 class IntlFormatter implements IntlFormatterInterface
21 {
22 private $hasMessageFormatter;
23 private $cache = [];
24 /**
25 * {@inheritdoc}
26 */
27 public function formatIntl(string $message, string $locale, array $parameters = []) : string
28 {
29 // MessageFormatter constructor throws an exception if the message is empty
30 if ('' === $message) {
31 return '';
32 }
33 if (!($formatter = $this->cache[$locale][$message] ?? null)) {
34 if (!($this->hasMessageFormatter ?? ($this->hasMessageFormatter = \class_exists(\MessageFormatter::class)))) {
35 throw new LogicException('Cannot parse message translation: please install the "intl" PHP extension or the "symfony/polyfill-intl-messageformatter" package.');
36 }
37 try {
38 $this->cache[$locale][$message] = $formatter = new \MessageFormatter($locale, $message);
39 } catch (\IntlException $e) {
40 throw new InvalidArgumentException(\sprintf('Invalid message format (error #%d): ', \intl_get_error_code()) . \intl_get_error_message(), 0, $e);
41 }
42 }
43 foreach ($parameters as $key => $value) {
44 if (\in_array($key[0] ?? null, ['%', '{'], \true)) {
45 unset($parameters[$key]);
46 $parameters[\trim($key, '%{ }')] = $value;
47 }
48 }
49 if (\false === ($message = $formatter->format($parameters))) {
50 throw new InvalidArgumentException(\sprintf('Unable to format message (error #%s): ', $formatter->getErrorCode()) . $formatter->getErrorMessage());
51 }
52 return $message;
53 }
54 }
55