示例#1
0
文件: Indexer.php 项目: vvval/spiral
 /**
  * Index and register i18n string located in default properties which belongs to TranslatorTrait
  * classes.
  *
  * @param ClassLocatorInterface $locator
  */
 public function indexClasses(ClassLocatorInterface $locator)
 {
     foreach ($locator->getClasses(TranslatorTrait::class) as $class => $options) {
         $reflection = new \ReflectionClass($class);
         $strings = $this->fetchStrings($reflection, $reflection->getConstant('INHERIT_TRANSLATIONS'));
         if (!empty($strings)) {
             $this->logger()->info("Found translation string(s) in class '{class}'.", ['class' => $reflection->getName()]);
         }
         foreach ($strings as $string) {
             $this->register($this->translator->resolveDomain($reflection->getName()), $string);
         }
     }
     $this->catalogue->saveDomains();
 }
示例#2
0
 /**
  * Load catalogue data from source.
  *
  * @param string $locale
  * @return Catalogue
  */
 protected function loadCatalogue($locale)
 {
     $catalogue = new Catalogue($locale, $this->memory);
     if (array_key_exists($locale, $this->loadedLocales) && $this->config->cacheLocales()) {
         //Has been loaded
         return $catalogue;
     }
     $benchmark = $this->benchmark('load', $locale);
     try {
         //Loading catalogue data from source
         foreach ($this->source->loadLocale($locale) as $messageCatalogue) {
             $catalogue->mergeFrom($messageCatalogue);
         }
         //To remember that locale already loaded
         $this->loadedLocales[$locale] = $catalogue->getDomains();
         $this->memory->saveData(static::MEMORY, $this->loadedLocales);
         //Saving domains memory
         $catalogue->saveDomains();
     } finally {
         $this->benchmark($benchmark);
     }
     return $catalogue;
 }