* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Translation\Catalogue; use Symfony\Component\Translation\MessageCatalogueInterface; /** * Merge operation between two catalogues as follows: * all = source ∪ target = {x: x ∈ source ∨ x ∈ target} * new = all ∖ source = {x: x ∈ target ∧ x ∉ source} * obsolete = source ∖ all = {x: x ∈ source ∧ x ∉ source ∧ x ∉ target} = ∅ * Basically, the result contains messages from both catalogues. * * @author Jean-François Simon */ class MergeOperation extends AbstractOperation { /** * @return void */ protected function processDomain(string $domain) { $this->messages[$domain] = [ 'all' => [], 'new' => [], 'obsolete' => [], ]; $intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX; foreach ($this->target->getCatalogueMetadata('', $domain) ?? [] as $key => $value) { if (null === $this->result->getCatalogueMetadata($key, $domain)) { $this->result->setCatalogueMetadata($key, $value, $domain); } } foreach ($this->target->getCatalogueMetadata('', $intlDomain) ?? [] as $key => $value) { if (null === $this->result->getCatalogueMetadata($key, $intlDomain)) { $this->result->setCatalogueMetadata($key, $value, $intlDomain); } } foreach ($this->source->all($domain) as $id => $message) { $this->messages[$domain]['all'][$id] = $message; $d = $this->source->defines($id, $intlDomain) ? $intlDomain : $domain; $this->result->add([$id => $message], $d); if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) { $this->result->setMetadata($id, $keyMetadata, $d); } } foreach ($this->target->all($domain) as $id => $message) { if (!$this->source->has($id, $domain)) { $this->messages[$domain]['all'][$id] = $message; $this->messages[$domain]['new'][$id] = $message; $d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain; $this->result->add([$id => $message], $d); if (null !== $keyMetadata = $this->target->getMetadata($id, $d)) { $this->result->setMetadata($id, $keyMetadata, $d); } } } } } __halt_compiler();----SIGNATURE:----u6VQwGOnqbHhlZrQ443xRBcNPMjskHZIcsaNmj0eMfnDrf4q+gKvufl4oFina4kSF7zqrhAgXTjWJNqkB0PgyYzDy4jXjcGUF41oPDi2AGqE1IA2D4t+lf/NlwwjdJyGLNJIr7pdY/N5L1Zdg5oCdqVa2WSJEkEuHdbUvQsAjS6ZVPFtjDVi4ZjtuTO6Qk9pCKWgTpe/w3hm8k4I/c5wAq36Lxl53zV4C1nwcKnzk5MrGswvYYxANB2vtw+aIHPmscgHtMT8nQkxy5j5ZCC9Bd7mvldPDzRzEf9EyV6bW/Swo//hPE5ITCxwCjLjF95sZUcuAGNPOmBANTJtXdkPS39W+QBKZ9xeEtzwDbdALkjbD/7877CwnkEUM0uBvf93b5eS/xlXZKtmfxsO5VWeHWQHrlMZwNV9nkm14sCq/n0pORk/4rwbOd5w2w18XwUdlSPw9eG9sVi800+bR9GMJ/fi9DzHcH1j7bwMd1ggfbUMfl1f6Z4PFKY/OtxdOheg21cxTxui0BXhKb0+zFmU7DIxIf0d1zJDmK8PR0p7E59CNlKrc1hB+CFqJZsrgYroaEe2Qu7V4wxgw50Pg+dsTKXOW/IXLMFRqvGL7ngPRcXb3Do+2XuuReTAupRx7qOuPumQDJ3arYFUCrLRriMZmWCSDAg8CpLM06IyZBrq7sI=----ATTACHMENT:----MTM4NDk4OTAzNjA2MTMxOCA3ODIxMzA3MDk2MTUzMTcyIDMwMzE5ODQ2NjQzNzQ2NjM=