/** * @param TranslatorConfig $config * @param Translator $translator * @return void */ public function perform(TranslatorConfig $config, Translator $translator) { if (!$config->hasDumper($this->option('dumper'))) { $this->writeln("<fg=red>Undefined dumper '{$this->option('dumper')}'.</fg=red>"); return null; } $catalogue = $translator->getCatalogue($this->argument('locale'))->loadDomains(); if ($this->option('fallback')) { //Let's merge with fallback locale $fallbackCatalogue = $translator->getCatalogue($config->fallbackLocale())->loadDomains(); //Soft merge $catalogue->mergeFrom($fallbackCatalogue->toMessageCatalogue(), false); } //Pre-loading all domains $messageCatalogue = $catalogue->toMessageCatalogue(); if ($this->isVerbosity() && !empty($catalogue->getDomains())) { $this->writeln("<info>Dumping domain(s):</info> " . join(',', $catalogue->getDomains())); } $dumper = $config->dumperClass($this->option('dumper')); /** * @var DumperInterface $dumper */ $dumper = new $dumper(); $dumper->dump($messageCatalogue, ['path' => $this->argument('path'), 'default_locale' => $config->defaultLocale(), 'xliff_version' => '2.0']); $this->writeln("Dump successfully completed."); }
/** * Flush all loaded locales data. * * @return $this */ public function flushLocales() { $this->loadedLocales = []; $this->catalogues = []; $this->memory->saveData(static::MEMORY, []); //Reloading fallback locale $this->fallbackCatalogue = $this->loadCatalogue($this->config->fallbackLocale()); return $this; }
/** * @param Translator $translator * @param TranslatorConfig $config */ public function __construct(Translator $translator, TranslatorConfig $config) { $this->translator = $translator; //Indexation into fallback (root) locale $this->catalogue = $translator->getCatalogue($config->fallbackLocale()); }