Your IP : 216.73.217.176


Current Path : /home/bechata/mp/wp-content/uploads/2022/ejn73c/
Upload File :
Current File : /home/bechata/mp/wp-content/uploads/2022/ejn73c/translation.tar

Interval.php000066600000002765150351217650007064 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; use MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException; class Interval { public static function test($number, $interval) { $interval = \trim($interval); if (!\preg_match('/^' . self::getIntervalRegexp() . '$/x', $interval, $matches)) { throw new \MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException(\sprintf('"%s" is not a valid interval.', $interval)); } if ($matches[1]) { foreach (\explode(',', $matches[2]) as $n) { if ($number == $n) { return \true; } } } else { $leftNumber = self::convertNumber($matches['left']); $rightNumber = self::convertNumber($matches['right']); return ('[' === $matches['left_delimiter'] ? $number >= $leftNumber : $number > $leftNumber) && (']' === $matches['right_delimiter'] ? $number <= $rightNumber : $number < $rightNumber); } return \false; } public static function getIntervalRegexp() { return <<<EOF
        ({\\s*
            (\\-?\\d+(\\.\\d+)?[\\s*,\\s*\\-?\\d+(\\.\\d+)?]*)
        \\s*})

            |

        (?P<left_delimiter>[\\[\\]])
            \\s*
            (?P<left>-Inf|\\-?\\d+(\\.\\d+)?)
            \\s*,\\s*
            (?P<right>\\+?Inf|\\-?\\d+(\\.\\d+)?)
            \\s*
        (?P<right_delimiter>[\\[\\]])
EOF;
} private static function convertNumber($number) { if ('-Inf' === $number) { return \log(0); } elseif ('+Inf' === $number || 'Inf' === $number) { return -\log(0); } return (float) $number; } } MessageCatalogueInterface.php000066600000001612150351217650012320 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; use MailPoetVendor\Symfony\Component\Config\Resource\ResourceInterface; interface MessageCatalogueInterface { public function getLocale(); public function getDomains(); public function all($domain = null); public function set($id, $translation, $domain = 'messages'); public function has($id, $domain = 'messages'); public function defines($id, $domain = 'messages'); public function get($id, $domain = 'messages'); public function replace($messages, $domain = 'messages'); public function add($messages, $domain = 'messages'); public function addCatalogue(self $catalogue); public function addFallbackCatalogue(self $catalogue); public function getFallbackCatalogue(); public function getResources(); public function addResource(\MailPoetVendor\Symfony\Component\Config\Resource\ResourceInterface $resource); } Translator.php000066600000023250150351217650007421 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; use MailPoetVendor\Symfony\Component\Config\ConfigCacheFactory; use MailPoetVendor\Symfony\Component\Config\ConfigCacheFactoryInterface; use MailPoetVendor\Symfony\Component\Config\ConfigCacheInterface; use MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException; use MailPoetVendor\Symfony\Component\Translation\Exception\LogicException; use MailPoetVendor\Symfony\Component\Translation\Exception\NotFoundResourceException; use MailPoetVendor\Symfony\Component\Translation\Exception\RuntimeException; use MailPoetVendor\Symfony\Component\Translation\Formatter\ChoiceMessageFormatterInterface; use MailPoetVendor\Symfony\Component\Translation\Formatter\MessageFormatter; use MailPoetVendor\Symfony\Component\Translation\Formatter\MessageFormatterInterface; use MailPoetVendor\Symfony\Component\Translation\Loader\LoaderInterface; class Translator implements \MailPoetVendor\Symfony\Component\Translation\TranslatorInterface, \MailPoetVendor\Symfony\Component\Translation\TranslatorBagInterface { protected $catalogues = []; private $locale; private $fallbackLocales = []; private $loaders = []; private $resources = []; private $formatter; private $cacheDir; private $debug; private $configCacheFactory; public function __construct($locale, $formatter = null, $cacheDir = null, $debug = \false) { $this->setLocale($locale); if ($formatter instanceof \MailPoetVendor\Symfony\Component\Translation\MessageSelector) { $formatter = new \MailPoetVendor\Symfony\Component\Translation\Formatter\MessageFormatter($formatter); @\trigger_error(\sprintf('Passing a "%s" instance into the "%s()" method as a second argument is deprecated since Symfony 3.4 and will be removed in 4.0. Inject a "%s" implementation instead.', \MailPoetVendor\Symfony\Component\Translation\MessageSelector::class, __METHOD__, \MailPoetVendor\Symfony\Component\Translation\Formatter\MessageFormatterInterface::class), \E_USER_DEPRECATED); } elseif (null === $formatter) { $formatter = new \MailPoetVendor\Symfony\Component\Translation\Formatter\MessageFormatter(); } $this->formatter = $formatter; $this->cacheDir = $cacheDir; $this->debug = $debug; } public function setConfigCacheFactory(\MailPoetVendor\Symfony\Component\Config\ConfigCacheFactoryInterface $configCacheFactory) { $this->configCacheFactory = $configCacheFactory; } public function addLoader($format, \MailPoetVendor\Symfony\Component\Translation\Loader\LoaderInterface $loader) { $this->loaders[$format] = $loader; } public function addResource($format, $resource, $locale, $domain = null) { if (null === $domain) { $domain = 'messages'; } $this->assertValidLocale($locale); $this->resources[$locale][] = [$format, $resource, $domain]; if (\in_array($locale, $this->fallbackLocales)) { $this->catalogues = []; } else { unset($this->catalogues[$locale]); } } public function setLocale($locale) { $this->assertValidLocale($locale); $this->locale = $locale; } public function getLocale() { return $this->locale; } public function setFallbackLocales(array $locales) { $this->catalogues = []; foreach ($locales as $locale) { $this->assertValidLocale($locale); } $this->fallbackLocales = $locales; } public function getFallbackLocales() { return $this->fallbackLocales; } public function trans($id, array $parameters = [], $domain = null, $locale = null) { if (null === $domain) { $domain = 'messages'; } return $this->formatter->format($this->getCatalogue($locale)->get((string) $id, $domain), $locale, $parameters); } public function transChoice($id, $number, array $parameters = [], $domain = null, $locale = null) { if (!$this->formatter instanceof \MailPoetVendor\Symfony\Component\Translation\Formatter\ChoiceMessageFormatterInterface) { throw new \MailPoetVendor\Symfony\Component\Translation\Exception\LogicException(\sprintf('The formatter "%s" does not support plural translations.', \get_class($this->formatter))); } if (null === $domain) { $domain = 'messages'; } $id = (string) $id; $catalogue = $this->getCatalogue($locale); $locale = $catalogue->getLocale(); while (!$catalogue->defines($id, $domain)) { if ($cat = $catalogue->getFallbackCatalogue()) { $catalogue = $cat; $locale = $catalogue->getLocale(); } else { break; } } return $this->formatter->choiceFormat($catalogue->get($id, $domain), $number, $locale, $parameters); } public function getCatalogue($locale = null) { if (null === $locale) { $locale = $this->getLocale(); } else { $this->assertValidLocale($locale); } if (!isset($this->catalogues[$locale])) { $this->loadCatalogue($locale); } return $this->catalogues[$locale]; } protected function getLoaders() { return $this->loaders; } protected function loadCatalogue($locale) { if (null === $this->cacheDir) { $this->initializeCatalogue($locale); } else { $this->initializeCacheCatalogue($locale); } } protected function initializeCatalogue($locale) { $this->assertValidLocale($locale); try { $this->doLoadCatalogue($locale); } catch (\MailPoetVendor\Symfony\Component\Translation\Exception\NotFoundResourceException $e) { if (!$this->computeFallbackLocales($locale)) { throw $e; } } $this->loadFallbackCatalogues($locale); } private function initializeCacheCatalogue($locale) { if (isset($this->catalogues[$locale])) { return; } $this->assertValidLocale($locale); $cache = $this->getConfigCacheFactory()->cache($this->getCatalogueCachePath($locale), function (\MailPoetVendor\Symfony\Component\Config\ConfigCacheInterface $cache) use($locale) { $this->dumpCatalogue($locale, $cache); }); if (isset($this->catalogues[$locale])) { return; } $this->catalogues[$locale] = (include $cache->getPath()); } private function dumpCatalogue($locale, \MailPoetVendor\Symfony\Component\Config\ConfigCacheInterface $cache) { $this->initializeCatalogue($locale); $fallbackContent = $this->getFallbackContent($this->catalogues[$locale]); $content = \sprintf(<<<EOF
<?php

use Symfony\\Component\\Translation\\MessageCatalogue;

\$catalogue = new MessageCatalogue('%s', %s);

%s
return \$catalogue;

EOF
, $locale, \var_export($this->catalogues[$locale]->all(), \true), $fallbackContent); $cache->write($content, $this->catalogues[$locale]->getResources()); } private function getFallbackContent(\MailPoetVendor\Symfony\Component\Translation\MessageCatalogue $catalogue) { $fallbackContent = ''; $current = ''; $replacementPattern = '/[^a-z0-9_]/i'; $fallbackCatalogue = $catalogue->getFallbackCatalogue(); while ($fallbackCatalogue) { $fallback = $fallbackCatalogue->getLocale(); $fallbackSuffix = \ucfirst(\preg_replace($replacementPattern, '_', $fallback)); $currentSuffix = \ucfirst(\preg_replace($replacementPattern, '_', $current)); $fallbackContent .= \sprintf(<<<'EOF'
$catalogue%s = new MessageCatalogue('%s', %s);
$catalogue%s->addFallbackCatalogue($catalogue%s);

EOF
, $fallbackSuffix, $fallback, \var_export($fallbackCatalogue->all(), \true), $currentSuffix, $fallbackSuffix); $current = $fallbackCatalogue->getLocale(); $fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue(); } return $fallbackContent; } private function getCatalogueCachePath($locale) { return $this->cacheDir . '/catalogue.' . $locale . '.' . \strtr(\substr(\base64_encode(\hash('sha256', \serialize($this->fallbackLocales), \true)), 0, 7), '/', '_') . '.php'; } private function doLoadCatalogue($locale) { $this->catalogues[$locale] = new \MailPoetVendor\Symfony\Component\Translation\MessageCatalogue($locale); if (isset($this->resources[$locale])) { foreach ($this->resources[$locale] as $resource) { if (!isset($this->loaders[$resource[0]])) { if (\is_string($resource[1])) { throw new \MailPoetVendor\Symfony\Component\Translation\Exception\RuntimeException(\sprintf('No loader is registered for the "%s" format when loading the "%s" resource.', $resource[0], $resource[1])); } throw new \MailPoetVendor\Symfony\Component\Translation\Exception\RuntimeException(\sprintf('No loader is registered for the "%s" format.', $resource[0])); } $this->catalogues[$locale]->addCatalogue($this->loaders[$resource[0]]->load($resource[1], $locale, $resource[2])); } } } private function loadFallbackCatalogues($locale) { $current = $this->catalogues[$locale]; foreach ($this->computeFallbackLocales($locale) as $fallback) { if (!isset($this->catalogues[$fallback])) { $this->initializeCatalogue($fallback); } $fallbackCatalogue = new \MailPoetVendor\Symfony\Component\Translation\MessageCatalogue($fallback, $this->catalogues[$fallback]->all()); foreach ($this->catalogues[$fallback]->getResources() as $resource) { $fallbackCatalogue->addResource($resource); } $current->addFallbackCatalogue($fallbackCatalogue); $current = $fallbackCatalogue; } } protected function computeFallbackLocales($locale) { $locales = []; foreach ($this->fallbackLocales as $fallback) { if ($fallback === $locale) { continue; } $locales[] = $fallback; } if (\function_exists('locale_parse')) { $localeSubTags = \locale_parse($locale); if (1 < \count($localeSubTags)) { \array_pop($localeSubTags); $fallback = \locale_compose($localeSubTags); if (\false !== $fallback) { \array_unshift($locales, $fallback); } } } elseif (\false !== \strrchr($locale, '_')) { \array_unshift($locales, \substr($locale, 0, -\strlen(\strrchr($locale, '_')))); } elseif (\false !== \strrchr($locale, '-')) { \array_unshift($locales, \substr($locale, 0, -\strlen(\strrchr($locale, '-')))); } return \array_unique($locales); } protected function assertValidLocale($locale) { if (1 !== \preg_match('/^[a-z0-9@_\\.\\-]*$/i', $locale)) { throw new \MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException(\sprintf('Invalid "%s" locale.', $locale)); } } private function getConfigCacheFactory() { if (!$this->configCacheFactory) { $this->configCacheFactory = new \MailPoetVendor\Symfony\Component\Config\ConfigCacheFactory($this->debug); } return $this->configCacheFactory; } } Exception/ExceptionInterface.php000066600000000211150351217650012775 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation\Exception; if (!defined('ABSPATH')) exit; interface ExceptionInterface { } Exception/InvalidResourceException.php000066600000000403150351217650014176 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation\Exception; if (!defined('ABSPATH')) exit; class InvalidResourceException extends \InvalidArgumentException implements \MailPoetVendor\Symfony\Component\Translation\Exception\ExceptionInterface { } Exception/index.php000066600000000000150351217650010321 0ustar00Exception/RuntimeException.php000066600000000363150351217650012530 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation\Exception; if (!defined('ABSPATH')) exit; class RuntimeException extends \RuntimeException implements \MailPoetVendor\Symfony\Component\Translation\Exception\ExceptionInterface { } Exception/NotFoundResourceException.php000066600000000404150351217650014345 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation\Exception; if (!defined('ABSPATH')) exit; class NotFoundResourceException extends \InvalidArgumentException implements \MailPoetVendor\Symfony\Component\Translation\Exception\ExceptionInterface { } Exception/LogicException.php000066600000000357150351217650012145 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation\Exception; if (!defined('ABSPATH')) exit; class LogicException extends \LogicException implements \MailPoetVendor\Symfony\Component\Translation\Exception\ExceptionInterface { } Exception/InvalidArgumentException.php000066600000000403150351217650014171 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation\Exception; if (!defined('ABSPATH')) exit; class InvalidArgumentException extends \InvalidArgumentException implements \MailPoetVendor\Symfony\Component\Translation\Exception\ExceptionInterface { } TranslatorInterface.php000066600000000715150351217650011243 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; use MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException; interface TranslatorInterface { public function trans($id, array $parameters = [], $domain = null, $locale = null); public function transChoice($id, $number, array $parameters = [], $domain = null, $locale = null); public function setLocale($locale); public function getLocale(); } MetadataAwareInterface.php000066600000000503150351217650011605 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; interface MetadataAwareInterface { public function getMetadata($key = '', $domain = 'messages'); public function setMetadata($key, $value, $domain = 'messages'); public function deleteMetadata($key = '', $domain = 'messages'); } IdentityTranslator.php000066600000001647150351217650011141 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; class IdentityTranslator implements \MailPoetVendor\Symfony\Component\Translation\TranslatorInterface { private $selector; private $locale; public function __construct(\MailPoetVendor\Symfony\Component\Translation\MessageSelector $selector = null) { $this->selector = $selector ?: new \MailPoetVendor\Symfony\Component\Translation\MessageSelector(); } public function setLocale($locale) { $this->locale = $locale; } public function getLocale() { return $this->locale ?: \Locale::getDefault(); } public function trans($id, array $parameters = [], $domain = null, $locale = null) { return \strtr((string) $id, $parameters); } public function transChoice($id, $number, array $parameters = [], $domain = null, $locale = null) { return \strtr($this->selector->choose((string) $id, (int) $number, $locale ?: $this->getLocale()), $parameters); } } MessageCatalogue.php000066600000011310150351217650010473 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; use MailPoetVendor\Symfony\Component\Config\Resource\ResourceInterface; use MailPoetVendor\Symfony\Component\Translation\Exception\LogicException; class MessageCatalogue implements \MailPoetVendor\Symfony\Component\Translation\MessageCatalogueInterface, \MailPoetVendor\Symfony\Component\Translation\MetadataAwareInterface { private $messages = []; private $metadata = []; private $resources = []; private $locale; private $fallbackCatalogue; private $parent; public function __construct($locale, array $messages = []) { $this->locale = $locale; $this->messages = $messages; } public function getLocale() { return $this->locale; } public function getDomains() { return \array_keys($this->messages); } public function all($domain = null) { if (null === $domain) { return $this->messages; } return isset($this->messages[$domain]) ? $this->messages[$domain] : []; } public function set($id, $translation, $domain = 'messages') { $this->add([$id => $translation], $domain); } public function has($id, $domain = 'messages') { if (isset($this->messages[$domain][$id])) { return \true; } if (null !== $this->fallbackCatalogue) { return $this->fallbackCatalogue->has($id, $domain); } return \false; } public function defines($id, $domain = 'messages') { return isset($this->messages[$domain][$id]); } public function get($id, $domain = 'messages') { if (isset($this->messages[$domain][$id])) { return $this->messages[$domain][$id]; } if (null !== $this->fallbackCatalogue) { return $this->fallbackCatalogue->get($id, $domain); } return $id; } public function replace($messages, $domain = 'messages') { $this->messages[$domain] = []; $this->add($messages, $domain); } public function add($messages, $domain = 'messages') { if (!isset($this->messages[$domain])) { $this->messages[$domain] = $messages; } else { foreach ($messages as $id => $message) { $this->messages[$domain][$id] = $message; } } } public function addCatalogue(\MailPoetVendor\Symfony\Component\Translation\MessageCatalogueInterface $catalogue) { if ($catalogue->getLocale() !== $this->locale) { throw new \MailPoetVendor\Symfony\Component\Translation\Exception\LogicException(\sprintf('Cannot add a catalogue for locale "%s" as the current locale for this catalogue is "%s".', $catalogue->getLocale(), $this->locale)); } foreach ($catalogue->all() as $domain => $messages) { $this->add($messages, $domain); } foreach ($catalogue->getResources() as $resource) { $this->addResource($resource); } if ($catalogue instanceof \MailPoetVendor\Symfony\Component\Translation\MetadataAwareInterface) { $metadata = $catalogue->getMetadata('', ''); $this->addMetadata($metadata); } } public function addFallbackCatalogue(\MailPoetVendor\Symfony\Component\Translation\MessageCatalogueInterface $catalogue) { $c = $catalogue; while ($c = $c->getFallbackCatalogue()) { if ($c->getLocale() === $this->getLocale()) { throw new \MailPoetVendor\Symfony\Component\Translation\Exception\LogicException(\sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale())); } } $c = $this; do { if ($c->getLocale() === $catalogue->getLocale()) { throw new \MailPoetVendor\Symfony\Component\Translation\Exception\LogicException(\sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale())); } foreach ($catalogue->getResources() as $resource) { $c->addResource($resource); } } while ($c = $c->parent); $catalogue->parent = $this; $this->fallbackCatalogue = $catalogue; foreach ($catalogue->getResources() as $resource) { $this->addResource($resource); } } public function getFallbackCatalogue() { return $this->fallbackCatalogue; } public function getResources() { return \array_values($this->resources); } public function addResource(\MailPoetVendor\Symfony\Component\Config\Resource\ResourceInterface $resource) { $this->resources[$resource->__toString()] = $resource; } public function getMetadata($key = '', $domain = 'messages') { if ('' == $domain) { return $this->metadata; } if (isset($this->metadata[$domain])) { if ('' == $key) { return $this->metadata[$domain]; } if (isset($this->metadata[$domain][$key])) { return $this->metadata[$domain][$key]; } } return null; } public function setMetadata($key, $value, $domain = 'messages') { $this->metadata[$domain][$key] = $value; } public function deleteMetadata($key = '', $domain = 'messages') { if ('' == $domain) { $this->metadata = []; } elseif ('' == $key) { unset($this->metadata[$domain]); } else { unset($this->metadata[$domain][$key]); } } private function addMetadata(array $values) { foreach ($values as $domain => $keys) { foreach ($keys as $key => $value) { $this->setMetadata($key, $value, $domain); } } } } index.php000066600000000000150351217650006363 0ustar00Util/index.php000066600000000000150351217650007300 0ustar00Util/ArrayConverter.php000066600000002043150351217650011150 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation\Util; if (!defined('ABSPATH')) exit; class ArrayConverter { public static function expandToTree(array $messages) { $tree = []; foreach ($messages as $id => $value) { $referenceToElement =& self::getElementByPath($tree, \explode('.', $id)); $referenceToElement = $value; unset($referenceToElement); } return $tree; } private static function &getElementByPath(array &$tree, array $parts) { $elem =& $tree; $parentOfElem = null; foreach ($parts as $i => $part) { if (isset($elem[$part]) && \is_string($elem[$part])) { $elem =& $elem[\implode('.', \array_slice($parts, $i))]; break; } $parentOfElem =& $elem; $elem =& $elem[$part]; } if ($elem && \is_array($elem) && $parentOfElem) { self::cancelExpand($parentOfElem, $part, $elem); } return $elem; } private static function cancelExpand(array &$tree, $prefix, array $node) { $prefix .= '.'; foreach ($node as $id => $value) { if (\is_string($value)) { $tree[$prefix . $id] = $value; } else { self::cancelExpand($tree, $prefix . $id, $value); } } } } MessageSelector.php000066600000003177150351217650010363 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; use MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException; class MessageSelector { public function choose($message, $number, $locale) { $parts = []; if (\preg_match('/^\\|++$/', $message)) { $parts = \explode('|', $message); } elseif (\preg_match_all('/(?:\\|\\||[^\\|])++/', $message, $matches)) { $parts = $matches[0]; } $explicitRules = []; $standardRules = []; foreach ($parts as $part) { $part = \trim(\str_replace('||', '|', $part)); if (\preg_match('/^(?P<interval>' . \MailPoetVendor\Symfony\Component\Translation\Interval::getIntervalRegexp() . ')\\s*(?P<message>.*?)$/xs', $part, $matches)) { $explicitRules[$matches['interval']] = $matches['message']; } elseif (\preg_match('/^\\w+\\:\\s*(.*?)$/', $part, $matches)) { $standardRules[] = $matches[1]; } else { $standardRules[] = $part; } } foreach ($explicitRules as $interval => $m) { if (\MailPoetVendor\Symfony\Component\Translation\Interval::test($number, $interval)) { return $m; } } $position = \MailPoetVendor\Symfony\Component\Translation\PluralizationRules::get($number, $locale); if (!isset($standardRules[$position])) { if (1 === \count($parts) && isset($standardRules[0])) { return $standardRules[0]; } throw new \MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException(\sprintf('Unable to choose a translation for "%s" with locale "%s" for value "%d". Double check that this translation has the correct plural options (e.g. "There is one apple|There are %%count%% apples").', $message, $locale, $number)); } return $standardRules[$position]; } } DataCollectorTranslator.php000066600000006615150351217650012070 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; use MailPoetVendor\Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface; use MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException; class DataCollectorTranslator implements \MailPoetVendor\Symfony\Component\Translation\TranslatorInterface, \MailPoetVendor\Symfony\Component\Translation\TranslatorBagInterface, \MailPoetVendor\Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface { const MESSAGE_DEFINED = 0; const MESSAGE_MISSING = 1; const MESSAGE_EQUALS_FALLBACK = 2; private $translator; private $messages = []; public function __construct(\MailPoetVendor\Symfony\Component\Translation\TranslatorInterface $translator) { if (!$translator instanceof \MailPoetVendor\Symfony\Component\Translation\TranslatorBagInterface) { throw new \MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException(\sprintf('The Translator "%s" must implement TranslatorInterface and TranslatorBagInterface.', \get_class($translator))); } $this->translator = $translator; } public function trans($id, array $parameters = [], $domain = null, $locale = null) { $trans = $this->translator->trans($id, $parameters, $domain, $locale); $this->collectMessage($locale, $domain, $id, $trans, $parameters); return $trans; } public function transChoice($id, $number, array $parameters = [], $domain = null, $locale = null) { $trans = $this->translator->transChoice($id, $number, $parameters, $domain, $locale); $this->collectMessage($locale, $domain, $id, $trans, $parameters, $number); return $trans; } public function setLocale($locale) { $this->translator->setLocale($locale); } public function getLocale() { return $this->translator->getLocale(); } public function getCatalogue($locale = null) { return $this->translator->getCatalogue($locale); } public function warmUp($cacheDir) { if ($this->translator instanceof \MailPoetVendor\Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface) { $this->translator->warmUp($cacheDir); } } public function getFallbackLocales() { if ($this->translator instanceof \MailPoetVendor\Symfony\Component\Translation\Translator || \method_exists($this->translator, 'getFallbackLocales')) { return $this->translator->getFallbackLocales(); } return []; } public function __call($method, $args) { return \call_user_func_array([$this->translator, $method], $args); } public function getCollectedMessages() { return $this->messages; } private function collectMessage($locale, $domain, $id, $translation, $parameters = [], $number = null) { if (null === $domain) { $domain = 'messages'; } $id = (string) $id; $catalogue = $this->translator->getCatalogue($locale); $locale = $catalogue->getLocale(); $fallbackLocale = null; if ($catalogue->defines($id, $domain)) { $state = self::MESSAGE_DEFINED; } elseif ($catalogue->has($id, $domain)) { $state = self::MESSAGE_EQUALS_FALLBACK; $fallbackCatalogue = $catalogue->getFallbackCatalogue(); while ($fallbackCatalogue) { if ($fallbackCatalogue->defines($id, $domain)) { $fallbackLocale = $fallbackCatalogue->getLocale(); break; } $fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue(); } } else { $state = self::MESSAGE_MISSING; } $this->messages[] = ['locale' => $locale, 'fallbackLocale' => $fallbackLocale, 'domain' => $domain, 'id' => $id, 'translation' => $translation, 'parameters' => $parameters, 'transChoiceNumber' => $number, 'state' => $state]; } } TranslatorBagInterface.php000066600000000406150351217650011652 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; use MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException; interface TranslatorBagInterface { public function getCatalogue($locale = null); } LoggingTranslator.php000066600000004771150351217650010737 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; use MailPoetVendor\Psr\Log\LoggerInterface; use MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException; class LoggingTranslator implements \MailPoetVendor\Symfony\Component\Translation\TranslatorInterface, \MailPoetVendor\Symfony\Component\Translation\TranslatorBagInterface { private $translator; private $logger; public function __construct(\MailPoetVendor\Symfony\Component\Translation\TranslatorInterface $translator, \MailPoetVendor\Psr\Log\LoggerInterface $logger) { if (!$translator instanceof \MailPoetVendor\Symfony\Component\Translation\TranslatorBagInterface) { throw new \MailPoetVendor\Symfony\Component\Translation\Exception\InvalidArgumentException(\sprintf('The Translator "%s" must implement TranslatorInterface and TranslatorBagInterface.', \get_class($translator))); } $this->translator = $translator; $this->logger = $logger; } public function trans($id, array $parameters = [], $domain = null, $locale = null) { $trans = $this->translator->trans($id, $parameters, $domain, $locale); $this->log($id, $domain, $locale); return $trans; } public function transChoice($id, $number, array $parameters = [], $domain = null, $locale = null) { $trans = $this->translator->transChoice($id, $number, $parameters, $domain, $locale); $this->log($id, $domain, $locale); return $trans; } public function setLocale($locale) { $this->translator->setLocale($locale); } public function getLocale() { return $this->translator->getLocale(); } public function getCatalogue($locale = null) { return $this->translator->getCatalogue($locale); } public function getFallbackLocales() { if ($this->translator instanceof \MailPoetVendor\Symfony\Component\Translation\Translator || \method_exists($this->translator, 'getFallbackLocales')) { return $this->translator->getFallbackLocales(); } return []; } public function __call($method, $args) { return \call_user_func_array([$this->translator, $method], $args); } private function log($id, $domain, $locale) { if (null === $domain) { $domain = 'messages'; } $id = (string) $id; $catalogue = $this->translator->getCatalogue($locale); if ($catalogue->defines($id, $domain)) { return; } if ($catalogue->has($id, $domain)) { $this->logger->debug('Translation use fallback catalogue.', ['id' => $id, 'domain' => $domain, 'locale' => $catalogue->getLocale()]); } else { $this->logger->warning('Translation not found.', ['id' => $id, 'domain' => $domain, 'locale' => $catalogue->getLocale()]); } } } PluralizationRules.php000066600000006154150351217650011144 0ustar00<?php
 namespace MailPoetVendor\Symfony\Component\Translation; if (!defined('ABSPATH')) exit; class PluralizationRules { private static $rules = []; public static function get($number, $locale) { if ('pt_BR' === $locale) { $locale = 'xbr'; } if (\strlen($locale) > 3) { $locale = \substr($locale, 0, -\strlen(\strrchr($locale, '_'))); } if (isset(self::$rules[$locale])) { $return = \call_user_func(self::$rules[$locale], $number); if (!\is_int($return) || $return < 0) { return 0; } return $return; } switch ($locale) { case 'az': case 'bo': case 'dz': case 'id': case 'ja': case 'jv': case 'ka': case 'km': case 'kn': case 'ko': case 'ms': case 'th': case 'tr': case 'vi': case 'zh': return 0; case 'af': case 'bn': case 'bg': case 'ca': case 'da': case 'de': case 'el': case 'en': case 'eo': case 'es': case 'et': case 'eu': case 'fa': case 'fi': case 'fo': case 'fur': case 'fy': case 'gl': case 'gu': case 'ha': case 'he': case 'hu': case 'is': case 'it': case 'ku': case 'lb': case 'ml': case 'mn': case 'mr': case 'nah': case 'nb': case 'ne': case 'nl': case 'nn': case 'no': case 'oc': case 'om': case 'or': case 'pa': case 'pap': case 'ps': case 'pt': case 'so': case 'sq': case 'sv': case 'sw': case 'ta': case 'te': case 'tk': case 'ur': case 'zu': return 1 == $number ? 0 : 1; case 'am': case 'bh': case 'fil': case 'fr': case 'gun': case 'hi': case 'hy': case 'ln': case 'mg': case 'nso': case 'xbr': case 'ti': case 'wa': return 0 == $number || 1 == $number ? 0 : 1; case 'be': case 'bs': case 'hr': case 'ru': case 'sh': case 'sr': case 'uk': return 1 == $number % 10 && 11 != $number % 100 ? 0 : ($number % 10 >= 2 && $number % 10 <= 4 && ($number % 100 < 10 || $number % 100 >= 20) ? 1 : 2); case 'cs': case 'sk': return 1 == $number ? 0 : ($number >= 2 && $number <= 4 ? 1 : 2); case 'ga': return 1 == $number ? 0 : (2 == $number ? 1 : 2); case 'lt': return 1 == $number % 10 && 11 != $number % 100 ? 0 : ($number % 10 >= 2 && ($number % 100 < 10 || $number % 100 >= 20) ? 1 : 2); case 'sl': return 1 == $number % 100 ? 0 : (2 == $number % 100 ? 1 : (3 == $number % 100 || 4 == $number % 100 ? 2 : 3)); case 'mk': return 1 == $number % 10 ? 0 : 1; case 'mt': return 1 == $number ? 0 : (0 == $number || $number % 100 > 1 && $number % 100 < 11 ? 1 : ($number % 100 > 10 && $number % 100 < 20 ? 2 : 3)); case 'lv': return 0 == $number ? 0 : (1 == $number % 10 && 11 != $number % 100 ? 1 : 2); case 'pl': return 1 == $number ? 0 : ($number % 10 >= 2 && $number % 10 <= 4 && ($number % 100 < 12 || $number % 100 > 14) ? 1 : 2); case 'cy': return 1 == $number ? 0 : (2 == $number ? 1 : (8 == $number || 11 == $number ? 2 : 3)); case 'ro': return 1 == $number ? 0 : (0 == $number || $number % 100 > 0 && $number % 100 < 20 ? 1 : 2); case 'ar': return 0 == $number ? 0 : (1 == $number ? 1 : (2 == $number ? 2 : ($number % 100 >= 3 && $number % 100 <= 10 ? 3 : ($number % 100 >= 11 && $number % 100 <= 99 ? 4 : 5)))); default: return 0; } } public static function set(callable $rule, $locale) { if ('pt_BR' === $locale) { $locale = 'xbr'; } if (\strlen($locale) > 3) { $locale = \substr($locale, 0, -\strlen(\strrchr($locale, '_'))); } self::$rules[$locale] = $rule; } }