PATH:
home
/
lab2454c
/
tripvare.com
/
vendor
/
symfony
/
translation
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Translation; use Symfony\Component\Translation\Catalogue\AbstractOperation; use Symfony\Component\Translation\Catalogue\TargetOperation; final class TranslatorBag implements TranslatorBagInterface { /** @var MessageCatalogue[] */ private $catalogues = []; public function addCatalogue(MessageCatalogue $catalogue): void { if (null !== $existingCatalogue = $this->getCatalogue($catalogue->getLocale())) { $catalogue->addCatalogue($existingCatalogue); } $this->catalogues[$catalogue->getLocale()] = $catalogue; } public function addBag(TranslatorBagInterface $bag): void { foreach ($bag->getCatalogues() as $catalogue) { $this->addCatalogue($catalogue); } } /** * {@inheritdoc} */ public function getCatalogue(string $locale = null) { if (null === $locale || !isset($this->catalogues[$locale])) { $this->catalogues[$locale] = new MessageCatalogue($locale); } return $this->catalogues[$locale]; } /** * {@inheritdoc} */ public function getCatalogues(): array { return array_values($this->catalogues); } public function diff(TranslatorBagInterface $diffBag): self { $diff = new self(); foreach ($this->catalogues as $locale => $catalogue) { if (null === $diffCatalogue = $diffBag->getCatalogue($locale)) { $diff->addCatalogue($catalogue); continue; } $operation = new TargetOperation($diffCatalogue, $catalogue); $operation->moveMessagesToIntlDomainsIfPossible(AbstractOperation::NEW_BATCH); $newCatalogue = new MessageCatalogue($locale); foreach ($operation->getDomains() as $domain) { $newCatalogue->add($operation->getNewMessages($domain), $domain); } $diff->addCatalogue($newCatalogue); } return $diff; } public function intersect(TranslatorBagInterface $intersectBag): self { $diff = new self(); foreach ($this->catalogues as $locale => $catalogue) { if (null === $intersectCatalogue = $intersectBag->getCatalogue($locale)) { continue; } $operation = new TargetOperation($catalogue, $intersectCatalogue); $operation->moveMessagesToIntlDomainsIfPossible(AbstractOperation::OBSOLETE_BATCH); $obsoleteCatalogue = new MessageCatalogue($locale); foreach ($operation->getDomains() as $domain) { $obsoleteCatalogue->add($operation->getObsoleteMessages($domain), $domain); } $diff->addCatalogue($obsoleteCatalogue); } return $diff; } }
[+]
Extractor
[-] composer.json
[edit]
[-] Translator.php
[edit]
[+]
..
[+]
DependencyInjection
[+]
Exception
[+]
Catalogue
[+]
Provider
[-] MessageCatalogue.php
[edit]
[-] TranslatableMessage.php
[edit]
[-] MetadataAwareInterface.php
[edit]
[+]
Command
[+]
Reader
[-] LoggingTranslator.php
[edit]
[+]
Test
[+]
Dumper
[-] PseudoLocalizationTranslator.php
[edit]
[+]
Formatter
[+]
Writer
[+]
Resources
[-] TranslatorBag.php
[edit]
[-] IdentityTranslator.php
[edit]
[-] TranslatorBagInterface.php
[edit]
[+]
Util
[+]
DataCollector
[-] README.md
[edit]
[+]
Loader
[-] DataCollectorTranslator.php
[edit]
[-] MessageCatalogueInterface.php
[edit]
[-] LICENSE
[edit]
[-] CHANGELOG.md
[edit]