Пример #1
0
 /**
  * @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.");
 }
Пример #2
0
 /**
  * Indexing available method and function invocations, target: l, p, $this->translate()
  * functions.
  *
  * @param InvocationLocatorInterface $locator
  */
 public function indexInvocations(InvocationLocatorInterface $locator)
 {
     $this->logger()->info("Indexing invocations of 'l' function.");
     $this->registerInvocations($locator->getInvocations(new \ReflectionFunction('l')));
     $this->logger()->info("Indexing invocations of 'p' function.");
     $this->registerInvocations($locator->getInvocations(new \ReflectionFunction('p')));
     $this->logger()->info("Indexing invocations of 'say' method (TranslatorTrait).");
     $this->registerInvocations($locator->getInvocations(new \ReflectionMethod(TranslatorTrait::class, 'say')));
     $this->translator->getCatalogue()->saveDomains();
 }