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 / TranslatorBag.php
independent-analytics / vendor / symfony / translation Last commit date
Catalogue 1 month ago Command 1 month ago DataCollector 1 month ago DependencyInjection 1 month ago Dumper 1 month ago Exception 1 month ago Extractor 1 month ago Formatter 1 month ago Loader 1 month ago Provider 1 month ago Reader 1 month ago Resources 1 month ago Test 1 month ago Util 1 month ago Writer 1 month ago DataCollectorTranslator.php 1 month ago IdentityTranslator.php 2 years ago LoggingTranslator.php 1 month ago MessageCatalogue.php 1 month ago MessageCatalogueInterface.php 1 month ago MetadataAwareInterface.php 1 month ago PseudoLocalizationTranslator.php 1 month ago TranslatableMessage.php 1 month ago Translator.php 1 month ago TranslatorBag.php 1 month ago TranslatorBagInterface.php 1 month ago
TranslatorBag.php
86 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;
12
13 use IAWPSCOPED\Symfony\Component\Translation\Catalogue\AbstractOperation;
14 use IAWPSCOPED\Symfony\Component\Translation\Catalogue\TargetOperation;
15 /** @internal */
16 final class TranslatorBag implements TranslatorBagInterface
17 {
18 /** @var MessageCatalogue[] */
19 private array $catalogues = [];
20 public function addCatalogue(MessageCatalogue $catalogue) : void
21 {
22 if (null !== ($existingCatalogue = $this->getCatalogue($catalogue->getLocale()))) {
23 $catalogue->addCatalogue($existingCatalogue);
24 }
25 $this->catalogues[$catalogue->getLocale()] = $catalogue;
26 }
27 public function addBag(TranslatorBagInterface $bag) : void
28 {
29 foreach ($bag->getCatalogues() as $catalogue) {
30 $this->addCatalogue($catalogue);
31 }
32 }
33 /**
34 * {@inheritdoc}
35 */
36 public function getCatalogue(string $locale = null) : MessageCatalogueInterface
37 {
38 if (null === $locale || !isset($this->catalogues[$locale])) {
39 $this->catalogues[$locale] = new MessageCatalogue($locale);
40 }
41 return $this->catalogues[$locale];
42 }
43 /**
44 * {@inheritdoc}
45 */
46 public function getCatalogues() : array
47 {
48 return \array_values($this->catalogues);
49 }
50 public function diff(TranslatorBagInterface $diffBag) : self
51 {
52 $diff = new self();
53 foreach ($this->catalogues as $locale => $catalogue) {
54 if (null === ($diffCatalogue = $diffBag->getCatalogue($locale))) {
55 $diff->addCatalogue($catalogue);
56 continue;
57 }
58 $operation = new TargetOperation($diffCatalogue, $catalogue);
59 $operation->moveMessagesToIntlDomainsIfPossible(AbstractOperation::NEW_BATCH);
60 $newCatalogue = new MessageCatalogue($locale);
61 foreach ($operation->getDomains() as $domain) {
62 $newCatalogue->add($operation->getNewMessages($domain), $domain);
63 }
64 $diff->addCatalogue($newCatalogue);
65 }
66 return $diff;
67 }
68 public function intersect(TranslatorBagInterface $intersectBag) : self
69 {
70 $diff = new self();
71 foreach ($this->catalogues as $locale => $catalogue) {
72 if (null === ($intersectCatalogue = $intersectBag->getCatalogue($locale))) {
73 continue;
74 }
75 $operation = new TargetOperation($catalogue, $intersectCatalogue);
76 $operation->moveMessagesToIntlDomainsIfPossible(AbstractOperation::OBSOLETE_BATCH);
77 $obsoleteCatalogue = new MessageCatalogue($locale);
78 foreach ($operation->getDomains() as $domain) {
79 $obsoleteCatalogue->add(\array_diff($operation->getMessages($domain), $operation->getNewMessages($domain)), $domain);
80 }
81 $diff->addCatalogue($obsoleteCatalogue);
82 }
83 return $diff;
84 }
85 }
86